问题描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
public class Test {
public String longestCommonPrefix(String[] strs) {
//数组中第一个字符串的长度
int s=strs[0].length();
int max=0;//共同前缀的长度
for(int i = 0;i < strs.length;i++){
//进行长度比较
s = Math.min(s,strs[i].length());
}
//求公共前缀
for (int a = 0; a < s; a++) {
for (int b = 0; b < strs.length-1; b++) {
char c = strs[b+1].charAt(a);
if (c != strs[b].charAt(a)) {
if (max == 0) {
return new String("");
}
return strs[b].substring(0, max);
}
}
max++;
}
return strs[0].substring(0, max);
}
public static void main(String[] args) {
Test t=new Test();
String[] strs=new String[] {"abc","abcd","ab"};
System.out.println(t.longestCommonPrefix(strs));
}
}
该代码实现了一个寻找字符串数组中所有字符串最长公共前缀的函数。它通过比较每个字符串的字符来逐步确定公共前缀,当发现不匹配时返回已找到的公共前缀。示例中,对于输入`[flowerflowflight]`,返回公共前缀`fl`;而对于`[dogracecarcar]`,由于没有公共前缀,返回空字符串。
1597

被折叠的 条评论
为什么被折叠?



