leetcode-14-Longest Common Prefix

来源:互联网 发布:云记事本 php源码 编辑:程序博客网 时间:2024/06/05 15:13

问题

题目:[leetcode-14]

思路

思路不难,和上一道题目不多。反正都是枚举子串。
注意前缀的定义,从首部开始的子串。必须要包含首部。比如abcd,前缀有ϵ,a,ab,abc,abcd.
思路就是:所有子串的首部同时开始判断,如果有一个不相等。结束。

代码

/*前缀只能从首部开始,所以枚举所有子串的首部即可.*/class Solution {public:    string longestCommonPrefix(vector<string>& strs) {        int sz = strs.size();        if(!sz) return "";        // find the min length        int min = strs[0].size();        for( int i = 1; i < sz; ++i )        {            if( strs[i].size() < min )                min = strs[i].size();        }        int ans = 0;        for( int i = 0; i < min; ++i )        {            bool flag = true;            for( int j = 0; j < sz-1; ++j )            {                if( strs[j][i] != strs[j+1][i] )                {                    flag = false;                    break;                }            }            if(flag)                ++ans;            else                break;        }        return std::string( strs[0].begin(), strs[0].begin() + ans )  ;    }};
0 0
原创粉丝点击