/**
*https://oj.leetcode.com/problems/longest-common-prefix
* Write a function to find the longest common prefix string amongst an array of strings.
* 问题描述:写一个函数找到一组字符串的最长公共前缀。
* 这个题要明确一个观点,一组字符串的最长公共前缀不会比该组字符串中任意两个字符串的公共前缀还长,那么,就可以遍历字符串数组,
* 求出遍历字符串与已得到的公共前缀的公共前缀,遍历完的结果就是该字符串数组的最长公共前缀。
*/
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
if(strs.size() == 0){
return "";
} else if(strs.size() == 1){
return strs[0];
}
vector<string> :: iterator iter = strs.begin();
string longestPrefix = *iter;
for(iter = ++iter; iter != strs.end(); iter++){
longestPrefix = getLonggestCommandPrefix(longestPrefix, *iter);
if(longestPrefix.size() == 0){//如果最长公共长缀已经为0,那么就没有继续比较的必要了
break;
}
}
return longestPrefix;
}
string getLonggestCommandPrefix(string &prefix, string &neighbourStr){
string commonPrefix = "";
int i = 0;
while(i < prefix.size() && i < neighbourStr.size()){
if(prefix[i] == neighbourStr[i]){
commonPrefix += prefix[i];
i++;
} else {
break;
}
}
return commonPrefix;
}
};
Leetcode Longest Common Prefix
最新推荐文章于 2014-10-07 22:49:33 发布