字符串-----9.最长公共前缀

第14日:最长公共前缀

题目链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnmav1/

题目:

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

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

示例 1

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

示例 2

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

提示:

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

相关标签 字符串

解题:

  1. 使用指针

    大致思路:

    比对当前指针所指位置的各字符串是否相同,如果相同下移,不同则返回前缀相同的子串

    详细代码如下:

        public String longestCommonPrefix(String[] strs) {
            //最小长度值
            int minLen=strs[0].length();
            for (int i = 1; i < strs.length; i++) {
                if (strs[i].length()<minLen) minLen=strs[i].length();
            }
            if (minLen==0) return "";
    
            int index=0;
            while (index<minLen){
                char pbc=strs[0].charAt(index);
                for (int i = 0; i < strs.length; i++) {
                    char c = strs[i].charAt(index);
                    if (pbc!=c){
                        return strs[i].substring(0,index);
                    }
                }
                index++;
            }
            return strs[0].substring(0,index);
        }
    

字符串-----9.最长公共前缀

上一篇:最长公共前缀_字符串_简单


下一篇:每天一道算法 20210726