/*
思路:
最长公共前缀的意思就是从第一个字母开始的每个字符串相同的前缀
1、首先找到最短的那个字符串的长度和最短的那个字符串的下标
2、用两个循环
第一个循环,遍历每个字符串的第i个字母
第二个循环,遍历每个字符串
3、判断每个字符串的第i个字符是否相等,如果发现第一个字母中有不想等的,直接返回“”;
如果发现第一个字符后面有不相等的,返回前面相同前缀;如果发现全都相等,则返回最短的那个字符串。
*/
class Solution {
public String longestCommonPrefix(String[] strs) {
int n = strs.length;
int shortest = 0;//记录最短字符串的下标
if(n == 0)
return "";
if(n == 1)
return strs[0];
int temp = strs[0].length();//记录最短字符串的长度
for(int i = 1; i < n; i++){
if(temp > strs[i].length()){
temp = strs[i].length();
shortest = i;
}
}
for(int i = 0; i < temp; i++){
for(int j = 0; j < n-1; j++){
if(strs[j].charAt(i) == strs[j+1].charAt(i))
continue;
else{ //如果遇到不相等的情况
if(i == 0)
return "";
else{
return strs[0].substring(0,i);
}
}
}
}
//循环结束,如果还没有返回值,说明全部相等,返回最短的那个数组
return strs[shortest];
}
}
14. 最长公共前缀Leetcode
最新推荐文章于 2024-02-04 21:38:18 发布