題目:
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 ""
。
示例 1:
輸入: ["flower","flow","flight"] 輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"] 輸出: "" 解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z
。
解法:
String result = "";
if (strs.length == 0) { //空數組時候
return "";
}
if (strs.length == 1) {// 數組只有一個元素,就是他本身
return strs[0];
}
String firStr = strs[0];// 取出數組的第一個元素
boolean isStart = true;
String temp = "";
for (int i = 1; i <= firStr.length(); i++) {
temp = firStr.substring(0, i);// 逐步擴大比較的字符串
for (int j = 1; j <= strs.length - 1; j++) {
if (strs[j].startsWith(temp)) { //只要有一個不是以temp開頭,立即跳出循環
isStart = true;
} else {
isStart = false;
break;
}
}
if (isStart) { //如果都是以 temp 開頭,則賦值給 result,否則跳出最外層的循環
result = temp;
} else {
break;
}
}
return result;