Leetcode 字串陣列的最長公共字首
阿新 • • 發佈:2019-02-18
public String longestCommonPrefix(String[] strs){
if(strs == null || strs.length==0) return "";
String prifex = strs[0]; // 預設將第一個認為是最長共同
for(int i=1;i<strs.length;i++){
// 將當前最長共同字串和當前陣列中的對比,把小的那個作為長度
int len = prifex.length()>strs[i].length() ? strs[i].length():prifex.length();
int j=0;
for(j=0;j<len;j++){
// 逐個字元比較,不等的時候退出
if(prifex.charAt(j)!=strs[i].charAt(j))
break;
}
// 退出的j即當前的最小,整個遍歷結束後就是整個的最小了
prifex = prifex.substring(0,j);
}
return prifex;
}
反思:
預設先將第一個認為是最長的共同字首,然後再for迴圈,用三木運算子來選個更小的,逐個比較,不等就break,退出時的j是當前最小的,整個遍歷介紹的時候就是最小的,最後用 prifex.substring(0,j)