LeetCode 7最長公共前綴
阿新 • • 發佈:2018-08-08
sam 兩個 bst npr () add car pan 示例
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 ""
。
示例 1:
輸入: ["flower","flow","flight"] 輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"] 輸出: "" 解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z
。
思路:
要求最長的公共前綴,就是求字符串數組所有字符串前面相同的部分。
創建一個新函數來比較兩個字符串前面相同的長度。
通過比較字符串0和剩余字符串的公共前綴,選出最小的長度即為最長公共前綴。
class Solution { public String longestCommonPrefix(String[] strs) {if (strs.length==0)return ""; if (strs.length==1)return strs[0]; int sameCharNum=0; Set<Integer> set=new HashSet<>(); for (int i = 1; i < strs.length; i++) { sameCharNum = longestNum(strs[0], strs[i]); set.add(sameCharNum); }int minNum=Integer.MAX_VALUE; for (int i:set){ if(minNum>i){ minNum=i; } } return strs[0].substring(0,minNum); } public int longestNum(String s1,String s2){ int sameCharNum=0; for (int i = 0; i<s1.length()&&i<s2.length(); i++) {if (s1.charAt(i)==s2.charAt(i)) { sameCharNum++; }else return sameCharNum; } return sameCharNum; } }
LeetCode 7最長公共前綴