题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
题目链接:最长公共前缀
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
解题
一开始没有啥思路,感觉是动态规划题目,看题解也是一知半解,后来想到一个方法,将字符串数组排序,那么根据排序规则,只要将第一个元素和最后一个元素逐个字符比较就可以,直到出现不同的字符。
代码实现
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null) return "";
Arrays.sort(strs);
int i = 0;
for(i = 0; i < strs[0].length();) {
if(strs[0].charAt(i) == strs[strs.length-1].charAt(i))
i++;
else break;
}
return strs[0].substring(0, i);
}
}
Comments | NOTHING