#leetcode刷题之路14-最长公共前缀

2019-03-06 07:14:50来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"


示例 2:

输入: ["dog","racecar","car"]
输出: ""


解释: 输入不存在公共前缀。
说明:

所有输入只包含小写字母 a-z 。

 

思路:

最后的公共前缀肯定不会超过任何一个字符串的长度;

暴力法:直接依次比较第一个字符串和其他字符串的同一位置的字符。

#include<iostream>
#include<vector>
#include<string>
using namespace std;


string longestCommonPrefix(vector<string>& strs) {

    if (strs.size() == 0)
    {
        return "";
    }
    if (strs.size() == 1)
    {
        return strs[0];
    }
    int len = strs.size();
    for (int i = 0; i < strs[0].length(); i++)
            {
                for (int j = 1; j < len; j++)
                {
                    if ((i >= strs[j].length()) || strs[j][i] != strs[0][i]) 
                    {
                        return strs[0].substr(0, i);
                    }
                }
            }
    return strs[0];
}




int main(){
    vector<string> a = { "jieiuye", "jian", "j" };
    string ans = longestCommonPrefix(a);
    cout <<ans << endl;
    return 0;
}

 

 

 

 

 

 

 


原文链接:https://www.cnblogs.com/biat/p/10477285.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:『ACM C++』 Codeforces | 1005D - Polycarp and Div 3

下一篇:L2-002 链表去重