1. 程式人生 > 其它 >劍指Offer 14. 最長公共字首

劍指Offer 14. 最長公共字首

1. 題目

編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串""

2. 示例

示例1:

輸入:strs = ["flower","flow","flight"]
輸出:"fl"

示例2:

輸入:strs = ["dog","racecar","car"]
輸出:""
解釋:輸入不存在公共字首。

3. 題解

採用的思想很簡單,縱向掃碼,匹配每個字串的第i個字元是否相等。相等繼續;不等直接返回之前的。

時間複雜度:O(mn),m為字串個數,n為最短字串長度。

4. 實現

 1 public class LongestCommonPrefix14 {
 2     //
判斷第i個字元是否相等 3 public String longestCommonPrefix(String[] strs) { 4 if(strs.length <= 1) return strs[0]; 5 int i = 0; 6 while (i <= 200) { 7 for(int j = 1; j < strs.length; j++) { 8 if(i < strs[0].length()) { 9 char
str0 = strs[0].charAt(i); 10 if (i >= strs[j].length() || strs[j].charAt(i) != str0) { 11 return strs[0].substring(0, i); 12 } 13 } else { 14 return strs[0].substring(0, i); 15 } 16 }
17 i++; 18 } 19 return ""; 20 } 21 22 public static void main(String[] args) { 23 // String[] strs = {"flower","flow","flight"}; 24 // String[] strs = {"dog","racecar","car"}; 25 //String[] strs = {"a", "a"}; 26 String[] strs = {"a"}; 27 System.out.println(new LongestCommonPrefix14().longestCommonPrefix(strs)); 28 } 29 }

5. 結語

  努力去愛周圍的每一個人,付出,不一定有收穫,但是不付出就一定沒有收穫! 給街頭賣藝的人零錢,不和深夜還在擺攤的小販討價還價。願我的部落格對你有所幫助(*^▽^*)(*^▽^*)!

  如果客官喜歡小生的園子,記得關注小生喲,小生會持續更新(#^.^#)(#^.^#)。