[LeetCode] Longest Common Prefix
来源:互联网 发布:淘宝网舞蹈鞋 编辑:程序博客网 时间:2024/05/29 10:54
Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
解题思路:
注意string类的append和push_back方法的使用。
1. 先求两个字符串的前缀,在求此前缀与剩下的字符串的前缀。代码如下:
class Solution {public:string longestCommonPrefix(vector<string> &strs){string result = "";int count = strs.size();if (count == 0){return "";}if (count == 1){return strs[0];}result = commonPrefix(strs[0], strs[1]);for (int i = 2; i < count; i++){if (result == ""){break;}result = commonPrefix(result, strs[i]);}return result;}private:string commonPrefix(string& s1, string& s2){int len1 = s1.length();int len2 = s2.length();int len = len1 < len2 ? len1 : len2;string result = "";for (int i = 0; i < len; i++){if (s1[i] == s2[i]){result.append(1, s1[i]);}else{break;}}return result;}};2. 逐位比较所有字符串,若遇到不全相等的位,停止比较。这种方法效率更高。代码如下:
class Solution {public:string longestCommonPrefix(vector<string> &strs){string result = "";int count = strs.size();if (count == 0){return "";}int minLen = strs[0].length();for (int i = 1; i < count; i++){if (minLen > strs[i].length()){minLen = strs[i].length();}}for (int i = 0; i < minLen; i++){char c = strs[0][i];int j = 1;for (; j < count; j++){if (strs[j][i] != c){break;}}if (j == count){result.append(1, c);}else{ break;}}return result;}};
0 0
- LeetCode: Longest Common Prefix
- LeetCode Longest Common Prefix
- LeetCode : Longest Common Prefix
- [Leetcode] Longest Common Prefix
- [LeetCode] Longest Common Prefix
- [LeetCode]Longest Common Prefix
- LeetCode-Longest Common Prefix
- [LeetCode] Longest Common Prefix
- LeetCode - Longest Common Prefix
- leetcode Longest Common Prefix
- LeetCode | Longest Common Prefix
- Leetcode: Longest Common Prefix
- LeetCode: Longest Common Prefix
- 【LeetCode】Longest Common Prefix
- [LeetCode] Longest Common Prefix
- [LeetCode]Longest Common Prefix
- leetcode: Longest Common Prefix
- LeetCode Longest Common Prefix
- [Leetcode]Word Search
- 自定义控件之刮刮卡
- 常量指针和指针常量
- [Accessibility] Missing contentDescription attribute on image
- how-to-configure-and-use-spark-history-server
- [LeetCode] Longest Common Prefix
- Android官方开发指南-Camera(相机)
- 怎样才能学好C语言
- 【Android开发经验】Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神
- VirtualBox安装ubuntu之后,无法挂载共享文件夹
- 两个APP之间相互传值
- iBATIS, Hibernate, and JPA : Which is right for you ?
- http://blog.csdn.net/ns_code/article/details/40408397
- 面试题[动态规划]: 最长公共子序列