【leetcode-14】Longest Common Prefix
阿新 • • 發佈:2018-12-13
題目描述
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string ""
.
Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z
.
解題思路
思路一:
To employ this idea, the algorithm iterates through the strings [S1…Sn][S_1 \ldots S_n][S1…Sn], finding at each iteration iii the longest common prefix of strings LCP(S1…Si)LCP(S_1 \ldots S_i)LCP(S1…Si) When LCP(S1…Si)LCP(S_1 \ldots S_i)LCP(S1…Si) is an empty string, the algorithm ends. Otherwise after nnn iterations, the algorithm returns LCP(S1…Sn)LCP(S_1 \ldots S_n)LCP(S1…Sn)
程式碼如下
class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length==0 || strs == null){ return ""; } String prefix = strs[0]; for(int i=1;i<strs.length;i++){ while(strs[i].indexOf(prefix) != 0){ prefix = prefix.substring(0,prefix.length()-1); if(prefix.isEmpty()){ return ""; } } } return prefix; } }
知識點總結
String 類中的方法indexOf(String s ):當字串s是呼叫該方法的字串的子串時返回0,否則返回-1