编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
-
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl” -
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null)
return null;
//最长公共前缀
StringBuilder sb = new StringBuilder("");
HashMap<String, Integer> hm = new HashMap<>();
for(int i = 0; i < strs.length; i++){
hm.put(strs[i], strs[i].length());
}
int min = Integer.MAX_VALUE;
String minStr = "";
for(String str : hm.keySet()){
if(hm.get(str) < min){
min = hm.get(str);
minStr = str;
}
}
System.out.println(minStr.length());
for(int i = 0; i < minStr.length(); i++){
for(int j = 0; j < strs.length - 1; j++){
if(strs[j].charAt(i) != strs[j+1].charAt(i)){
return sb.toString();
}
}
sb.append(minStr.charAt(i));
}
return sb.toString();
}
}
执行用时 : 10 ms, 在Longest Common Prefix的Java提交中击败了40.32% 的用户
内存消耗 : 36.1 MB, 在Longest Common Prefix的Java提交中击败了87.23% 的用户