解題思路:
該問題就是找到所有數組字符串里面的最長相同前字串。所以我的思路是先找到數組中最短的那個字符串,然后每次比較的時候最多循環(huán)該長度就行,這樣避免字符串下標溢出的問題。設置StringBuilder對象用于存放相同的字符。然后開始循環(huán),對于字符串的每個位置的字符,取該數組中第一個字符串的該位置作為參考,如果有哪個字符串該位置的字符不匹配,則直接返回已接好的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();
}
}