14. 最长公共前缀(简单系列)

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:

输入:strs = [“dog”,“racecar”,“car”]
输出:“”
解释:输入不存在公共前缀。

提示:

1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成

 public String longestCommonPrefix(String[] strs) {
        if(strs.length==0) 
        return "";
        String ans = strs[0];

        for(int i=1;i<strs.length;i++){
            int j=0;
            while(j<ans.length() && j<strs[i].length() && ans.charAt(j) == strs[i].charAt(j)){
                j++;
            }
            ans = ans.substring(0,j);
        }

        return ans;

    }

1.首先,代码判断输入的字符串数组是否为空,如果是,则直接返回空字符串。

2 .接着,代码将数组的第一个字符串设为初始结果字符串ans。

3.然后,通过for循环遍历数组中的剩余字符串。

4.在每次循环中,定义一个变量j,并初始化为0。

5.然后,使用while循环比较ans和当前遍历到的字符串中对应位置的字符,直到其中一个字符串的长度超过了另一个字符串的长度,或者遇到不相同的字符为止。

6.在while循环中,如果ans和当前字符串对应位置的字符相同,则将j加1。

7.循环结束后,使用substring方法将ans截取到位置j,并将结果赋给ans,即更新了最长公共前缀。

8.最后,返回结果字符串ans,表示数组中的最长公共前缀。

你可能感兴趣的:(Leetcode,算法,数据结构)