/**
* @author tangshiyun
* Created on 2022-01-11
*/
public class LongestCommonPrefix {
public static void main(String[] args) {
String[] strs = new String[]{"we","wgfds","wqfsaxcv"};
System.out.println(longestCommonPrefix(strs));
}
public static String longestCommonPrefix(String[] strs) {
//最长公共子串的初始值默认为字符串数组中的第一个字符串
//再依次遍历比较各个字符串,不断更新公共前缀
//如果遍历过程中公共前缀为空,直接返回空字符串作为结果
if(strs == null || strs.length == 0){
return null;
}
String commonStr = strs[0];
for(int i = 0; i < strs.length; i++){
commonStr = commonStr(commonStr,strs[i]);
if(commonStr.equals("")){
break;
}
}
return commonStr;
}
//找两个字符串的公共前缀
//此处标记一下:理解题意不对,前缀就是从第一个字符开始的
//我错误的理解成了:最长公共子串....
public static String commonStr(String s1, String s2){
int length = Math.min(s1.length(),s2.length());
int index = 0;
int i = 0;
while(i < length && s1.charAt(i) == s2.charAt(i)){
index++;
i++;
}
return s1.substring(0,index);
}
}
Leetcode14字符串的最长公共前缀
最新推荐文章于 2024-07-04 09:24:51 发布