2025年--Lc164--H14.最长公共前缀(数组和字符串)--Java版
1.题目
2.思路
(1)首先先遍历第一个字符串,并且记录第一个字符串的字符
(2)内层遍历剩下的字符串,剩下的字符串进行列对比。
如果剩下的字符串比较短到头了,只能匹配到i-1,立刻返回当前字符串能在第一个字符串匹配的长度str[0].substring(0,i)
如果剩下字符串的第i列不匹配,同样返回
(3)最后返回在第一个字符串截取的长度
3.代码实现
class Solution {public String longestCommonPrefix(String[] strs) {if(strs==null||strs.length==0)return "";//只看第一个字符串的长度for(int i=0;i<strs[0].length();i++){//本列应当匹配的字符char c=strs[0].charAt(i);//该列在所有字符串上比对(索引 j)//从第二个字符串开始,依次遍历数组 strs 的其余元素,用于把当前列的字符与其它字符串对比。for(int j=1;j<strs.length;j++){//遍历其余字符串 j = 1 ... strs.length-1//说明某个字符串到头了,公共前缀只能到 i-1,立即返回 strs[0].substring(0, i)。//strs[j].charAt(i) != c,说明在第 i 列发生不匹配,同样返回if(i==strs[j].length()||strs[j].charAt(i)!=c){return strs[0].substring(0,i);}}}return strs[0];}
}