LeetCode第14題
阿新 • • 發佈:2018-11-23
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 ""
。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
思路:①先遍歷字串陣列,找出長度最短的那個子串。
②以最短的子串作為基準,在此遍歷字串陣列,找出最長字首
程式碼如下:
class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length == 0){ return ""; } String re=""; int index=0; int length=strs[0].length(); //找出最短長度的字串 for(int i=0;i<strs.length-1;i++){ if(length>strs[i].length()){ length=strs[i].length(); index=i; } } //以最短子串為基準,在此遍歷字串陣列,找出最長字首 out:for(int i=1;i<=length;i++){ String sub=strs[index].substring(0, i); for(int j=0;j<strs.length;j++){ if(!strs[j].startsWith(sub)){ break out; } } re=sub; } return re; } }