【力扣】难度【简单】14. 最长公共前缀

标题:14. 最长公共前缀
难度:简单

描述:

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

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

示例 1:

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

示例 2:

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

提示:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/roman-to-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:

class Solution {
    public String longestCommonPrefix(String[] strs) {
         //记录匹配值
        String temp = "";
        if(strs == null || strs.length == 0){
            //空数据返回处理
            return temp;
        }
        //用于记录最小长度字符串位置
        int index = 0;
        //用于记录最小长度字符串值
        String mineStr = strs[index];
      
      //遍历取出最小字符串
        for(int x = 1;x < strs.length;x++){
            if(strs[x].length()<mineStr.length()){
                index = x;
            }
        }

        //最短字符串
         mineStr = strs[index];

        //["stirng","srtini","see"]
        //  mineStr = see
        //  index = 2
        //                第一次循环 第二次循环
        //                 x = 0    x=1   
        // see             s        e
        //stirng           s        e!=t(不符合返回temp=“s”)
        //srtini           s    
        //mineCharj =      s     
        //temp =       "" + ”s“ =”s“
        for(int j = 0;j < mineStr.length(); j++){
            // 最短字符串 第j个字母
            char mineCharj = mineStr.charAt(j);
            //遍历字符串数组
            //这里主要纵向遍历
           
             
            for(int x = 0;x < strs.length;x++){
                //第x个 字符串
                String strx = strs[x];
                //index == x :代表是我们记录的字符串不需要对比,判断下一个字符串前缀
                //strx.charAt(j) == mineCharj: 说明公共前缀匹配,进入下一个判断
               if(index == x || (strx.charAt(j) == mineCharj)){
                   //匹配进行下一个判断
                    continue;
               }else{
                   //不匹配,说明当前记录的temp是公共前缀
                   return temp;
               }
            }
            //遍历字符串数组后匹配   拼接匹配的值
            temp = temp + mineCharj;

        }
        //最后返回配置值
        return temp;
      
    }
}

执行结果: 通过
执行用时: 9 ms, 在所有 Java 提交中击败了8.68%的用户
内存消耗: 38.5 MB, 在所有 Java 提交中击败了5.53%的用户
通过测试用例: 123 / 123

上一篇:HTML 页面传值及另一个页面接收值


下一篇:算法练习:最长公共前缀