美文网首页
力扣-[简单] 14. 最长公共前缀

力扣-[简单] 14. 最长公共前缀

作者: _孙行者_ | 来源:发表于2021-03-25 15:56 被阅读0次

想的多, 见的多 , 就能打开思路了

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

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

示例 1:

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

示例 2:

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

提示:

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

题解:

简单粗暴的

public String longestCommonPrefix(String[] strs) {
        String first = strs[0];
        char[] chars = first.toCharArray();
        String res = "";
        for(int i = 0;i<chars.length;i++){
            boolean same = true;
            for(int j = 1;j<strs.length;j++){
                char[] chs = strs[j].toCharArray();
                if(chs.length > i){
                    if(chars[i] != chs[i]){
                        same = false;
                    }
                }else{
                    return res;
                }
            }

            if(same){
                res = res + chars[i];
            }
        }
        return res;
    }

稍微有点结构的

public String longestCommonPrefix2(String[] strs) {
        Set<Character> s = new HashSet<>();
        String first = strs[0];
        String res = "";
        char[] chars = first.toCharArray();
        for(int i = 0;i<chars.length;i++){
            for(int j = 1;j<strs.length;j++){
                char[] chs = strs[j].toCharArray();
                if(chs.length > i){
                    if(j > 1 && !s.add(chs[i])){
                        return res;
                    }
                }else{
                    return res;
                }
            }
            res = res + chars[i];
        }
        return res;
    }

高级玩家的

    public String longestCommonPrefix3(String[] strs) {
        if(strs == null || strs.length == 0)    return "";
        String str = strs[0];
        for(int i = 1 ; i < strs.length ; i++){
            while(strs[i].indexOf(str)!=0){
                str = str.substring(0,str.length()-1);
            }
        }
        return str;
    }

相关文章

  • 力扣-[简单] 14. 最长公共前缀

    想的多, 见的多 , 就能打开思路了 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字...

  • 14.最长公共前缀

    14.最长公共前缀 难度:简单 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ...

  • LeetCode-14 最长公共前缀

    题目:14. 最长公共前缀 难度:简单 分类:字符串 解决方案:字符串遍历 今天我们学习第14题最长公共前缀,这是...

  • 14. 最长公共前缀

    20180923-摘抄自14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,...

  • 算法第3天:最长公共前缀

    leetcode 14. 最长公共前缀 simple 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共...

  • [day4] [LeetCode] [title14,122]

    14.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例 ...

  • 14. 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 说明...

  • 14. 最长公共前缀

    14.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例1...

  • [LeetCode]14-最长公共前缀

    14. 最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。例1:输...

  • 每日Leetcode—算法(2)

    14.最长公共前缀 输入: ["flower","flow","flight"],输出: "fl"输入: ["do...

网友评论

      本文标题:力扣-[简单] 14. 最长公共前缀

      本文链接:https://www.haomeiwen.com/subject/xnqrhltx.html