【LeetCode】14. Longest Common Prefix (2 solutions)
2014-11-04 12:46
363 查看
Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
解法一:
思路:设置一个位数记录器num,遍历所有字符串的第num位。如果都相同,则num++。
直到某字符串结束或者所有字符串的第num位不都相同,则返回[0~num-1]位,即最长公共前缀。
![](http://images.cnitblog.com/blog/458814/201502/072058261108421.jpg)
解法二:
类似解法一,换个写法。
Write a function to find the longest common prefix string amongst an array of strings.
解法一:
思路:设置一个位数记录器num,遍历所有字符串的第num位。如果都相同,则num++。
直到某字符串结束或者所有字符串的第num位不都相同,则返回[0~num-1]位,即最长公共前缀。
class Solution { public: string longestCommonPrefix(vector<string> &strs) { if(strs.empty()) return ""; else if(strs.size() == 1) return strs[0]; else { string ret = ""; int num = 0; char c = strs[0][num]; while(true) { for(vector<string>::size_type st = 0; st < strs.size(); st ++) { if(num < strs[st].size() && strs[st][num] == c) {//match if(st == strs.size()-1) {//end ret += c; num ++; c = strs[0][num]; } } else return ret; } } } } };
![](http://images.cnitblog.com/blog/458814/201502/072058261108421.jpg)
解法二:
类似解法一,换个写法。
class Solution { public: string longestCommonPrefix(vector<string> &strs) { string ret = ""; char c; int index = 0; if(strs.empty()) return ret; while(true) { for(int i = 0; i < strs.size(); i ++) { if(i == 0) { if(index < strs[0].size()) c = strs[0][index]; else return ret; } // no else, 0 may equals to strs.size()-1 if(i == strs.size()-1) { if(index >= strs[i].size() || strs[i][index] != c) return ret; else { ret += c; index ++; } } if(i != 0 && i != strs.size()-1) { if(index >= strs[i].size() || strs[i][index] != c) return ret; } } } return ret; } };
![](http://images.cnitblog.com/blog/458814/201502/072056126106436.jpg)
相关文章推荐
- LeetCode14. Longest Common Prefix(字典树:最长公共前缀)
- LeetCode 14. Longest Common Prefix(最长公共前缀)
- LeetCode 14. Longest Common Prefix (easy)
- Leetcode刷题记——14. Longest Common Prefix(最长公共前缀)
- 14. Longest Common Prefix(leetcode)
- leetcode-14. Longest Common Prefix(寻找字符串数组最长公共前缀)
- 【leetcode】14. Longest Common Prefix(Python & C++)
- [LeetCode]14. Longest Common Prefix(自学留存)
- Leetcode 14. Longest Common Prefix (Easy) (cpp)
- LeetCode系列之——14. Longest Common Prefix(JavaScript)
- [LeetCode 14] Longest Common Prefix Solutions
- LeetCode 14. Longest Common Prefix(最长公共前缀)
- [leetcode]14. Longest Common Prefix(Java)
- 【leetcode】14. Longest Common Prefix(easy)
- LeetCode--14. Longest Common Prefix(最长公共前缀子串)
- Leetcode:14. Longest Common Prefix(JAVA)
- LeetCode 14. Longest Common Prefix(字符串)
- LeetCode | 14. Longest Common Prefix(最长公共前缀)
- Leetcode 14. Longest Common Prefix(python)
- [LeetCode] 14. Longest Common Prefix