14.最长公共前缀Java版,每日一题系列(此题来自力扣网)

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

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

示例1:

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

示例2:

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

说明:

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

方法一:

class Solution {
   public String longestCommonPrefix(String[] strs) {
       //判断数组strs长度是否为0,如果为0直接返回“”
       if (strs == null || strs.length == 0) {
      return "";
  }
       //取出数组strs的第一个数放入prefix中
       String prefix = strs[0];
       //遍历数组strs
       for (int i = 1; i < strs.length; i++) {
           //while循环遍历,遍历条件为查找遍历prefix在strs[i]中第一次出现的位置
           while (strs[i].indexOf(prefix) != 0) {
               //没遍历一次变量就用substring截取一次
               prefix = prefix.substring(0, prefix.length() - 1);
               //判断变量prefix是否为空,为空就没有公共前缀,直接return“”。
               if (prefix.isEmpty()) {
                   return "";
              }
          }    
      }      
       return prefix;
  }
}

方法二

public String longestCommonPrefix(String[] strs) {
   if (strs == null || strs.length == 0) {
       return "";
  }
   for (int i = 0; i < strs[0].length() ; i++){
       char c = strs[0].charAt(i);
       for (int j = 1; j < strs.length; j ++) {
           if (i == strs[j].length() || strs[j].charAt(i) != c) {
               return strs[0].substring(0, i);    
          }      
      }
  }
   return strs[0];
}

作者:LeetCode 链接:https://leetcode-cn.com/problems/longest-common-prefix/solution/zui-chang-gong-gong-qian-zhui-by-leetcode/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。