Longest Common Prefix

来源:互联网 发布:如何ping端口是否开放 编辑:程序博客网 时间:2024/05/16 01:35

Description:

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

分析:
先将第一个字符串与第二个字符串比较,找出公共部分,再与第三个字符串比较,依次类推。。。

代码:

#include <iostream>#include <vector>#include <string>using namespace std;string LongestCommonPrefix(std::vector<string> &v){    if(!v.empty())  //判断容器是否为空    {        vector<string>::iterator it = v.begin();        string str1 = *it;        while (++it != v.end()) {            string str2 = *it;            size_t MinLen = min(str1.size(),str2.size());            for (size_t i = 0; i < MinLen; i++) {                if (str1[i] != str2[i]) {                    str1 = str1.substr(0,i);                    break;                }            }        }        return str1;    }    return "0";}int main(int argc, char const *argv[]) {    vector<string> s = {"argcabcd","argcefgh","argcadcb","arg3547"};    vector<string> s2 = {"123str","12the","1arg","abc"};    vector<string> s3 = {};    std::cout << LongestCommonPrefix(s) << std::endl;    std::cout << LongestCommonPrefix(s2) << std::endl;    std::cout << LongestCommonPrefix(s3) << std::endl;    return 0;}

测试:

这里写图片描述

0 0
原创粉丝点击