問題
給定一個字符數(shù)組,獲取該數(shù)組中多個字符的最大公共前綴,如果不存在則返回空串
輸入:["flower","flow","flight"]
輸出:"fl"
思路
1)假定數(shù)組中第一個字符為最大公共前綴拌禾,并和數(shù)組中其他字符逐一進行比較,獲取公共部分
2)判斷第二個字符中是否存在第一個字符,如果不存在,則對第一個字符截取一位并繼續(xù)比較票腰, 如果存在,則繼續(xù)對后續(xù)其他字符進行逐一比較女气。
實現(xiàn)
public class LongestCommonPrefix {
public static void main(String[] args) {
String[] strings = new String[]{"flower","flow","flight"};
String result = longestCommonPrefix(strings);
System.out.println(result);
}
//默認第一個字符是公共前綴杏慰,逐一的和后面的字符進行比較
private static String longestCommonPrefix(String[] strs) {
//獲取第一個字符
String first = strs[0];
//循環(huán)比較
int index = 1;
while (index<strs.length){
//不斷截取
while (strs[index].indexOf(first) != 0){
//第一個字符縮短一位
first = first.substring(0,first.length()-1);
}
//滿足條件繼續(xù)向后比較
index++;
}
return first;
}
}
image.png