劍指Offer 14. 最長公共字首
阿新 • • 發佈:2021-06-28
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. 結語
努力去愛周圍的每一個人,付出,不一定有收穫,但是不付出就一定沒有收穫! 給街頭賣藝的人零錢,不和深夜還在擺攤的小販討價還價。願我的部落格對你有所幫助(*^▽^*)(*^▽^*)!
如果客官喜歡小生的園子,記得關注小生喲,小生會持續更新(#^.^#)(#^.^#)。