1.題目描述
Write a function to find the longest common prefix string amongst an array of strings.
找到一組字符串的最長(zhǎng)前綴。
2.我的分析思路
這一題的第一思路就是,把第一個(gè)字符串作為基準(zhǔn),遍歷每個(gè)子字符串,然后判斷其他字符串是否以這個(gè)子字符串為前綴,然后求出最長(zhǎng)的即可。
上代碼:
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0) {
return "";
}
if (strs.length == 1) {
return strs[0];
}
String result = "";
String first = strs[0];
int firstLength = first.length();
for (int i = 0; i < firstLength; i++) {
String temp = first.substring(0, i + 1);
boolean isPrefix = true;
for (int j = 1; j < strs.length; j++) {
if (strs[j].length() < temp.length() || !temp.equals(strs[j].substring(0, i + 1))) {
isPrefix = false;
}
}
if (isPrefix) {
result = temp;
}
}
return result;
}
3.其他的思路
if (strs.length == 0) return "";
String prefix = strs[0];
for (int i = 1; i < strs.length; i++)
while (strs[i].indexOf(prefix) != 0) {
prefix = prefix.substring(0, prefix.length() - 1);
if (prefix.isEmpty()) return "";
}
return prefix;
思路跟我的大同小異,代碼比我的簡(jiǎn)潔很多,我們寫代碼不就是追求簡(jiǎn)潔高效嘛?