一 题目:
二 思路:
根据题目意思提取出一点公共前缀比所有字符串都短,那么我们可以随便选一个字符串当公共前缀,然后依次往后比较,如果没有该公共子串就减去一个最后的字符继续比较,如果公共子串长度变为0,咱们就提前结束,减到最后的结果就是咱们的目标公共子串
三 代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length==0){
return "";
}
//公共前缀比所有字符串都短,先随便选一个
String commonPre = strs[0];
//比较每个字符串,目标是找到一个所有字符串的公共子串,这个子串肯定长度是最短的
for (String curr : strs) {
while (!curr.startsWith(commonPre)){
//如果公共子串变成空串就没必要继续比较了
if (commonPre.length()==0){
return "";
}else {
//如果不匹配就让公共串继续变短
commonPre=commonPre.substring(0,commonPre.length()-1);
}
}
}
return commonPre;
}
}
网友评论