最长公共前缀
这些简单题,做起来真的是开心啊,不过今天的简单题我整的有点想吐,我的时间复杂度应该是O(N^3)这个提交不成功,让我很惊喜。然后我在评论区里面发现了一个十分有参考价值的结果。
我的解答
public String longestCommonPrefix(String[] strs) {
boolean res = true;
String temp = strs[0];
int count = 0;
while (res) {
lab:for (int j = 1; j < temp.length(); j++) {
for (int i = 0; i < strs.length; i++) {
if(strs[i].length() < temp.length()){res = false;break lab;}
if (!temp.substring(0,j).equals(strs[i].substring(0,j))) {
res = false;
break lab;
}
}
count ++;
}
}
if (count > 0) {
return temp.substring(0,count);
}
return "";
}
路人大佬的解答
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;
}
}
这种解答,一看就是对这个问题的思考角度不一样,确实是一个非常强的对数据的处理是一种很清晰的做法。