每日一题6
题目:14. 最长公共前缀
思路:分离出字符串数组中的每个字符串,每个字符串的第一个字符两两比较,如果全部相同,则拼接到结果字符串中,然后比较第二个位置上的字符。依次进行即可
class Solution {
public String longestCommonPrefix(String[] strs) {
int n=strs.length;
String result="";
int j=0,i=0,min=201,t=0,m=0;
for(t=0;t<n;t++){
if(strs[t].length()<min){
min=strs[t].length(); //获得最小字符串的长度
}
}
while(m<min){
for(i=0;i<n-1;i++){
if(strs[i].charAt(j)==(strs[i+1].charAt(j))) continue;
else break;
}
if(i==n-1){ //如果全部字符相等,表示是公共前缀
result=result+strs[0].charAt(j); //拼接到结果字符串中
j++;
}
m++;
}
return result;
}
}
官方解答:
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
String prefix = strs[0];
int count = strs.length;
for (int i = 1; i < count; i++) {
prefix = longestCommonPrefix(prefix, strs[i]);
if (prefix.length() == 0) {
break;
}
}
return prefix;
}
public String longestCommonPrefix(String str1, String str2) {
int length = Math.min(str1.length(), str2.length());
int index = 0;
while (index < length && str1.charAt(index) == str2.charAt(index)) {
index++;
}
return str1.substring(0, index);
}
}
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/longest-common-prefix/solution/zui-chang-gong-gong-qian-zhui-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。