LeetCode 014 Longest Common Prefix
2014-08-17 12:07
330 查看
题目
Write a function to find the longest common prefix string amongst an array of strings.
思路
1 思路很简单,从数组中找出最小字符串,然后根据最小字符串来匹配全部字符串的前缀。
2 如果需要优化,可以在遍历最小字符串的前缀的时候使用半分法。
3 难点在于,字符串的length和数组的length混在一起,数组下标[]和方法()混在一起,容易写错。
15.3.17
注意JAVA的substring(startIndex,endIndex)和 substring(startindex)
Write a function to find the longest common prefix string amongst an array of strings.
思路
1 思路很简单,从数组中找出最小字符串,然后根据最小字符串来匹配全部字符串的前缀。
2 如果需要优化,可以在遍历最小字符串的前缀的时候使用半分法。
3 难点在于,字符串的length和数组的length混在一起,数组下标[]和方法()混在一起,容易写错。
public class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length==0){ return ""; } int num = strs.length; int shortestlength = strs[0].length(); int shortindex = 0; for(int i=0;i<num;i++){ int ln = strs[i].length(); if(ln<shortestlength){ shortestlength= ln; shortindex = i; } } String shortestString = strs[shortindex]; while(shortestlength>0){ String sub = shortestString.substring(0,shortestlength); int i; for(i=0;i<num;i++){ if(!strs[i].substring(0,shortestlength).equals(sub)){ break; } } if(i==num){ break; } else{ shortestlength--; } } return shortestString.substring(0,shortestlength); } }
15.3.17
public class Solution { public String longestCommonPrefix(String[] strs) { if(strs == null ){ return null; } int n = strs.length; String minStr = ""; int minLength = Integer.MAX_VALUE; for(int i=0;i<n;i++){ if(strs[i].length()<minLength){ minLength = strs[i].length(); minStr = strs[i]; } } for(int i=0;i<minStr.length();i++){ char cur = minStr.charAt(i); for(int j=0;j<n;j++){ if(strs[j].charAt(i)!=cur){ return minStr.substring(0,i); } } } return minStr; } }
注意JAVA的substring(startIndex,endIndex)和 substring(startindex)
相关文章推荐
- [LeetCode]014-Longest Common Prefix
- leetcode-014-Longest Common Prefix
- 014_LeetCode_14 Longest Common Prefix 题解
- LCP014 LeetCode 14. Longest Common Prefix
- leetcode 014 —— Longest Common Prefix
- LeetCode 014. Longest Common Prefix
- leetcode_c++:Longest Common Prefix(014)
- LeetCode 014 Longest Common Prefix
- leetcode_014_Longest Common Prefix
- LeetCode-014 Longest Common Prefix
- 【LeetCode】014.Longest Common Prefix
- LeetCode014 Longest Common Prefix
- LeetCode 014 Longest Common Prefix
- 【JAVA、C++】LeetCode 014 Longest Common Prefix
- LeetCode 014. Longest Common Prefix
- [LeetCode] 014. Longest Common Prefix (Easy) (C++/Java/Python)
- 【LeetCode】014 Longest Common Prefix
- LeetCode 014. Longest Common Prefix
- [LeetCode 解题报告]014. Longest Common Prefix
- LeetCode 014 Longest Common Prefix