前端國際化輔助工具——自動替換中文並翻譯
阿新 • • 發佈:2020-09-20
1.問題描述
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串""。
示例1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
說明:所有輸入只包含小寫字母a-z。
2.求解
常規解法
取出第一個字串,依次遍歷整個陣列,與第一個字串比較。
程式碼如下
public String longestCommonPrefix(String[] strs) { if(strs.length == 0){ return ""; } String s = strs[0]; for (int i = 1; i < strs.length; i++) { int index = getStr(s, strs[i]); if (index == 0) { return ""; } s = s.substring(0, index); } return s; } public int getStr(String str1, String str2) { int index = 0, m = str1.length(), n = str2.length(); if (m > n) { m = str2.length(); } for (int i = 0; i < m; i++) { if (str1.charAt(index) == str2.charAt(index)) { index++; } else { break; } } return index; }
- 時間複雜度 O(mn),其中 m是字串陣列中的字串的平均長度,n 是字串的陣列的長度。
- 空間複雜度 O(1)