Longest Common Prefix

来源:互联网 发布:手机淘宝退款流程 编辑:程序博客网 时间:2024/06/15 00:22

问题描述:Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

思路:在这个问题中,我们要找到所有字符串的公共前缀,最简单的方法就是从第一个字符串的第一位开始往后取,直到找到最大的公共字符串为止,那么这个条件是啥呢?第一个条件是当公共字符串的个数大于等于某个字符串的长度时,第二个条件是当字符串中出现某两个字符串的下一位不相等时。
1. abc,abd,ab
2. abc,abd,abf

代码:

#include<iostream>#include<vector>#include<string>using namespace std;string longestCommonPrefix(vector<string>& strs){    string prefix = "";    for(int i = 0; strs.size() > 0; prefix += strs[0][i],i++){        for(int j = 0; j < strs.size(); ++j){            if(i >= strs[j].size() || (j > 0 && strs[j][i] != strs[j-1][i])){                return prefix;            }        }    }    return prefix;}int main(){    vector<string> a;    a.push_back("abc");    a.push_back("abd");    a.push_back("ab");    for(int i=0;i<a.size();++i)        cout<<a[i]<<endl;    cout<<"result: "<<longestCommonPrefix(a)<<endl;}

运行时间:O(n)

原创粉丝点击