leetcode-最长公共前缀

最长公共前缀

 

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

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

示例 1:

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

示例 2:

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

说明:

所有输入只包含小写字母 a-z 。

 

这道题和上一道题str(str())有些相似,都需要设置标记flag,同时有一个不满足就跳出,这里用的是两次跳出break。

class Solution {
    public String longestCommonPrefix(String[] strs) {
        int len=strs.length;
        String res="";
      if(strs.length==0)return res;
        int count=0;
        int min=Integer.MAX_VALUE;    //从中挑选出最小的字符串比较,如果这个字符串也比较完了,那么不需要比较了
            for(int i=0;i<len;i++){
                if(strs[i].length()<min)min=strs[i].length();
            }
        while(count<min){    
              int flag=1;
        for(int i=1;i<len;i++){
            if(strs[i-1].length()==0)return res;
            if(strs[i].charAt(count)!=strs[i-1].charAt(count)){    //只要有一个字符串不满足,2次break,不用比较直接出结果
                flag=0;
                break;
            }
            
        }
            if(flag==0) break;
             res=res+strs[0].charAt(count);   //将公共的前缀加进去
            count++;    //可以比较下一个字符串了
    }
        return res;
    }
}

 

posted @ 2018-08-11 08:20  吃土豆鸭  阅读(188)  评论(0编辑  收藏  举报