Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
题目的意图
It seems that it is not to check between pair of strings but on all the strings in the array.
For example:
{"a","a","b"} should give "" as there is nothing common in all the 3 strings.
{"a", "a"} should give "a" as a is longest common prefix in all the strings.
{"abca", "abc"} as abc
{"ac", "ac", "a", "a"} as a.
Logic goes something like this:
Pick a character at i=0th location and compare it with the character at that location in every string.
If anyone doesn‘t have that just return ""
Else append that character in to the result.
Increment i and do steps 1-3 till the length of that string.
return result.
Make sure proper checks are maintained to avoid index out of bounds error.
代码
public class Solution { public static String longestCommonPrefix(String[] strs) { if (strs == null || strs.length == 0) return ""; String pre = strs[0]; int i = 1; while (i < strs.length) { System.out.println(strs[i].indexOf(pre) ); while (strs[i].indexOf(pre) != 0) pre = pre.substring(0, pre.length() - 1); i++; } return pre; } }