最长公共前缀

此博客链接:

最长公共前缀

题目链接:

题目

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

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

 

示例 1:

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

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

题解

找最长公共子序列,可以先取数组中的第一个单词(假设为最大公共子序列),然后把第一个和后面每个单词的每个字母逐步比较,如果有不相等的,就更新最大公共子序列的值。

代码

class Solution {
    public String longestCommonPrefix(String[] strs) {
      if(strs.length==0)
      {
          return "";
      }
      String res=strs[0];
      for(int i=1;i<strs.length;i++){
          int j=0;
          for(;j<res.length()&&j<strs[i].length();j++){
              if(res.charAt(j)!=strs[i].charAt(j)){
                  break;
              }
          }
          res=res.substring(0,j);
          if(res.equals(" ")){
              return "";
          }
      }
      return res;
    }
}

 

结果

 

注意点

1.字符串取长度使用length时,后面需要添加小括号,而数组不需要小括号。

2.java中对比两个字符串是否相等时,需要使用equals,这比较的是值是否相等,而在比较字符时,使用等号。

 

posted @ 2021-06-21 10:28  萍2樱释  阅读(43)  评论(0编辑  收藏  举报