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

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

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

示例 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;
}

 

 

 

 

 

 

 

posted @ 2019-03-05 15:48  maitianpt  阅读(225)  评论(0编辑  收藏  举报