[LeetCode 题解]: Longest Common Prefix
2014-06-17 21:17
253 查看
Write a function to find the longest common prefix string amongst an array of strings.
题解: 寻找一组字符串的最长公共前缀。
最简单的方法,用一个字符串记录当前最长的公共前缀,然后依次比较。时间复杂度: O(N).
高效的方法,采用分治法,先分块,后合并比较,时间复杂度O(logN)。
转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!
题解: 寻找一组字符串的最长公共前缀。
最简单的方法,用一个字符串记录当前最长的公共前缀,然后依次比较。时间复杂度: O(N).
class Solution { public: string getPrefix(string a,string b) // 辅助函数用于获取两个字符串的公共前缀 { string ans; for(int i=0;i<a.size() && i<b.size();i++) { if(a[i]==b[i]) ans+=a[i]; else break; } return ans; } string longestCommonPrefix(vector<string> &strs) { string a; int len = strs.size(); if(!len) return a; a = strs[0]; for(int i=1;i<len;i++) a= getPrefix(a,strs[i]); return a; } };
高效的方法,采用分治法,先分块,后合并比较,时间复杂度O(logN)。
class Solution { public: string getPrefix(string a,string b) //辅助函数,用于获取两个字符串的公共前缀 { string ans; for(int i=0;i<a.size() && i<b.size();i++) { if(a[i]==b[i]) ans+=a[i]; else break; } return ans; } string commonPrefix(int left,int right, vector<string> &strs) //分治法寻找commonPrefix { if(left>=right) return strs[left]; if(left+1==right) return getPrefix(strs[left],strs[right]); int middle = (right+left)>>1; return getPrefix(commonPrefix(left,middle,strs),commonPrefix(middle+1,right,strs)); } string longestCommonPrefix(vector<string> &strs) { int i=0,len=strs.size(); string a; if(!len) return a; return commonPrefix(0,len-1,strs); } };
转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!
相关文章推荐
- LeetCode题解——Longest Common Prefix
- LeetCode题解-14-Longest Common Prefix
- leetcode题解-14. Longest Common Prefix
- LeetCode题解:Longest Common Prefix
- LeetCodet题解--14. Longest Common Prefix
- LeetCode题解:Longest Common Prefix
- leetcode题解-13. Roman to Integer && 14. Longest Common Prefix && 20. Valid Parentheses
- leetcode 题解 || Longest Common Prefix 问题
- [LeetCode]题解(python):014-Longest Common Prefix
- LeetCode题解——Longest Common Prefix
- [E][79][leetcode题解]Longest Common Prefix
- leetcode 题解 || Longest Common Prefix 问题
- LeetCode 14 Longest Common Prefix (C,C++,Java,Python)
- LeetCode 14.Longest Common Prefix
- [leetcode]14. Longest Common Prefix
- 【leetcode】Longest Common Prefix
- [leetcode]38 Longest Common Prefix
- 2017-09-09 LeetCode_014 Longest Common Prefix
- DAY7:leetcode #14 Longest Common Prefix
- LeetCode——Longest Common Prefix