欢迎访问宙启技术站
智能推送

java中如何查看最长公共前缀

发布时间:2023-05-16 04:41:35

在 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];

}

以上是两种查找最长公共前缀的算法实现。在实际使用中,我们可以根据不同的场景选择不同的算法来解决问题。