解題思路:
該問題就是找到所有數(shù)組字符串里面的最長相同前字串鉴逞。所以我的思路是先找到數(shù)組中最短的那個(gè)字符串记某,然后每次比較的時(shí)候最多循環(huán)該長度就行,這樣避免字符串下標(biāo)溢出的問題华蜒。設(shè)置StringBuilder對象用于存放相同的字符辙纬。然后開始循環(huán),對于字符串的每個(gè)位置的字符叭喜,取該數(shù)組中第一個(gè)字符串的該位置作為參考贺拣,如果有哪個(gè)字符串該位置的字符不匹配,則直接返回已接好的StringBuilder對象捂蕴,否則循環(huán)繼續(xù)譬涡。最后返回接好的StringBuilder對象。
代碼如下:
public class Solution {
public String longestCommonPrefix(String[] strs) {
int length = Integer.MAX_VALUE;
StringBuilder stringbuilder = new StringBuilder();
if (strs.length == 0 || strs == null)
return "";
if (strs.length == 1)
return strs[0];
for (int i = 0; i < strs.length; i++) {
length = (strs[i].length() < length) ? strs[i].length() : length;
}
if (length == 0)
return "";
for (int j = 0; j < length; j++) {
for (int i = 0; i < strs.length; i++) {
if (strs[i].charAt(j) != strs[0].charAt(j))
return stringbuilder.toString();
}
stringbuilder.append(strs[0].charAt(j));
}
return stringbuilder.toString();
}
}