自学内容网 自学内容网

算法-求字符串公共前缀

力扣题目:14. 最长公共前缀 - 力扣(LeetCode)

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

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

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

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

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 如果非空,则仅由小写英文字母组成

Java实现





public class Solution {
    //1.比较当前字符串和前一个字符串的公共字符
    public  int gongSum(String s1,String s2)
    {
        int L1=s1.length();
        int L2=s2.length();
        int sum=0;
        for(int i=0;i<L1&&i<L2;i++)
        {
            if(s1.charAt(i)==s2.charAt(i))
            {
                sum++;
            }else{
                break;
            }
        }
//        System.out.println(sum);
        return sum;
    }
    public  String longestCommonPrefix(String[] strs) {
        String sum="";
        //2.循环求最小值;
        int min=strs[0].length();
        if(strs.length==1)
        {
            sum=strs[0];
        }else{
            for(int i=1;i<strs.length;i++)
            {
                int x=gongSum(strs[i],strs[i-1]);
                if(x>0){
                    min=Math.min(min,x);
                } else if (x==0) {
                    min=0;
                    break;
                }
            }
        }
        System.out.println(min);
        if(min==0)
        {
            return "";
        }else{
            StringBuffer s1=new StringBuffer();
            for(int i=0;i<min;i++)
            {
                s1.append(strs[0].charAt(i));
            }
            sum=s1.toString();
        }
        return sum;
    }
}


原文地址:https://blog.csdn.net/silent702366/article/details/145265747

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!