java中如何查看最长公共前缀
在 Java 中,可以通过一些算法来查找最长公共前缀。最常见的算法是水平扫描和垂直扫描。
1. 水平扫描法
这种算法的基本思想是:先取 个字符串为前缀,然后与其余字符串进行比较,每次只要取两个字符串的公共前缀。比较完所有字符串后,就能得到最长公共前缀。
代码实现:
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
String prefix = strs[0];
for (int i = 1; i < strs.length; i++) {
while (strs[i].indexOf(prefix) != 0) {
prefix = prefix.substring(0, prefix.length() - 1);
if (prefix.isEmpty()) {
return "";
}
}
}
return prefix;
}
2. 垂直扫描法
这种算法的基本思想是:先取 个字符串为前缀,然后在每个字符串的同一位置进行比较。只要比较到有不相等的字符,就说明前缀已经结束,否则前缀还可以继续延长。
代码实现:
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);
for (int j = 1; j < strs.length; j++) {
if (i == strs[j].length() || strs[j].charAt(i) != c) {
return strs[0].substring(0, i);
}
}
}
return strs[0];
}
以上是两种查找最长公共前缀的算法实现。在实际使用中,我们可以根据不同的场景选择不同的算法来解决问题。
