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) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。