描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
解法:先拿数组第一个字符串用作最长前缀,依次遍历其他数组的字符串进行对比,如果不是其他字符串的前缀,则让该字符串长度-1,继续对比,直到遍历完其他数组字符串停止,而s存放的就是最长前缀了,Java实现代码如下:
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0){
return "";
}
String s = strs[0];
for(String string : strs){
while(!string.startsWith(s)){
if(s.length() == 0) return "";
s = s.substring(0,s.length()-1);
}
}
return s;
}
}
其中需要了解几个String提供的方法:
方法 | 描述 |
startsWith(prefix) | 测试此字符串是否以指定的前缀开头 |
substring(int beginIndex,int endIndex) | 返回一个字符串,该字符串是此字符串的子字符串 |