Write a function to find the longest common prefix string amongst an array of strings.
找出字符串?dāng)?shù)組的最長共同前綴完慧。
比如:
"abcdefg"
"abcdefghijk"
"abcdfghijk"
"abcef"
上面的字符串?dāng)?shù)組的最長公共前綴就是"abc"筋粗。
class Solution {
public String longestCommonPrefix(String[] strs) {
String res ="";
int n = strs.length;
if(n == 0) return res;
int minLen = strs[0].length();
for(int i = 1; i<n ;i++){
minLen = Math.min(minLen, strs[i].length());
}
for(int j= 0; j<minLen ; j++){
for(int k =1; k<n; k++){
if(strs[k-1].charAt(j) != strs[k].charAt(j)) return res;
}
res = res + strs[0].charAt(j);
}
return res;
}
}
solution里的優(yōu)秀解更短:
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) return "";
String res = strs[0];
for (int i = 1; i < strs.length; i++) {
while (!strs[i].startsWith(res)) res = res.substring(0, res.length() - 1);
}
return res;
}
}
這里的strs.startsWith方法:
startsWith是String類中的一個方法蜜猾,用來檢測某字符串是否以另一個字符串開始宪哩,返回值為boolean類型如:
String a = "abcd";
String p = "abc";
Boolean b = a.startsWith(p);則b就為true.
如果p的值為“”空字符串,(即a.startsWith("")服鹅,)則也是返回true膳帕。