题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
我的题解:
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0) return "";
String result = "";
Set set = new HashSet();
for (int k = 0;; k ++) {
for (int i= 0; i < strs.length; i ++) {
if (k < strs[i].length()) {
set.add(strs[i].charAt(k));
if (set.size() > 1) {
return result;
}
} else {
return result;
}
}
result = result + strs[0].charAt(k);
set.clear();
}
}
}
大神题解:
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0){
return "";
}
String str = strs[0];
for(int i = 1; i < strs.length; i++){
while(strs[i].indexOf(str) != 0){
str=str.substring(0, str.length() - 1);
}
}
return str;
}
}