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