编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
package leetCodeTest;
public class 最长公共前缀 {
public static void main(String[] args) {
String[] strs = new String[]{"c","c"};
String s = longestCommonPrefix(strs);
System.out.println("s = " + s);
}
/**
* 水平扫描法,按列比较每一个字符,直到出现不相等字符或者
* 下标大于某一个短字符返回公共最长前缀。
* @param strs
* @return
*/
public static String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) return "";
int i,j;
for (i=0;i<strs[0].length();i++){
char c = strs[0].charAt(i);
for (j=0;j<strs.length;j++){
if (i==strs[j].length() || strs[j].charAt(i) != c)
return strs[0].substring(0,i);
}
}
return strs[0];
}
}