LeetCode(14. 最長公共字首)
阿新 • • 發佈:2018-12-13
演算法描述 :
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 ""。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
說明:
所有輸入只包含小寫字母 a-z 。
演算法實現 :
Java實現 :
class Solution {
public String longestCommonPrefix(String[] strs) {
// 排除[]的情況
if (strs.length == 0) {
return "";
}
// 計算出strs中元素的最小長度
int min = strs[0].length();
for (int i = 0; i < strs.length; i++) {
if (strs[i].length() < min) {
min = strs[i].length();
}
}
// 排除strs中有空元素的情況, 如 {"", "egd"}
if (min == 0) {
return "";
}
StringBuilder res = new StringBuilder();
for (int i = 0; i < min; i++) {
char ch = strs[0].charAt(i); // ch記錄第1個元素的第1個字元
// ch依次從第2個元素比較,如果存在不匹配的情況,則返回結束
for (int j = 1; j < strs.length; j++ ) {
if (ch != strs[j].charAt(i)) {
return res.toString();
}
}
res.append(ch); // 所有元素的第i個字元匹配,記錄之.
}
return res.toString();
}
}