前綴:java
對題目所給數組進行排序(Array.sort)數組
設立一個哨兵字符,默認爲false(用來判斷是否有必要遍歷下去)code
設置字符串str,默認爲""(來拼接每次遍歷獲得的公共部分)blog
獲取排序後的數組的第一個元素並把它拆分紅一個個字符串(若數組不是字符串能夠先轉成字符串)排序
對拆分後的字符串數組進行遍歷(具體過程以下:)字符串
若字符串數組的首字母是數組最後一個元素的前綴,那麼設置哨兵字符爲true,讓str拼接字符串數組的首字母,而後一直遍歷下去(有就str拼接)直到找到最多的公共前綴,string
若不是,則直接退出循環(首字母不是,後面的必然不符合要求了)it
最後返回字符串str的值io
package class01; import java.util.Arrays; public class Solution2 { public static void main(String[] args) { String[] strings={"abcb","abcd","abcghc"}; System.out.println(prefix(strings)); } public static String prefix(String[] strs){ Arrays.sort(strs); boolean flag=false; String prefix ="";//初始化 String[] temp=strs[0].split("");//把題目已知的字符串數組的第一個字符串拆分紅一個個字符 for (int i = 0; i < temp.length; i++) { if(strs[strs.length-1].substring(i).startsWith(temp[i])){ prefix=prefix+temp[i]; flag=true;//只要有一個前綴,flag1就爲true } if(flag==false){ return ""; } } return prefix; } }