LeetCode Longest Common Prefix

来源:互联网 发布:倒车入库模拟软件 编辑:程序博客网 时间:2024/06/04 19:15

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


关于这个题目的描述有歧义,究竟是求解所有字符串的最长公共前序,还是求解每对字符串中的最长的公共子序列。本题的实际是前一种情况。


思路一:思路很直接,就像直男癌一样。。。但需要注意边界输入的处理

代码如下:

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {    string result = "";    if(strs.size() == 1)        return strs[0];    for(int ind =0; strs.size() > 0;result+=strs[0][ind],ind++)        for(int i=1;i<strs.size();i++)            if(ind >= strs[i].size() || strs[0][ind] != strs[i][ind])                return result;    return result;    }};

思路二先对字符串进行排序,再求首尾两个字符串的公共前序,即为题目的求解。该思路的效率并没有提升。。。

代码如下:

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {     string result = "";            if (strs.size() > 0){                sort(strs.begin(),strs.end());                    string a = strs[0];          string b = strs[strs.size()-1];                    for (int i = 0; i < a.length(); i ++){              if (b.length() > i && b[i] == a[i]){                  result += b[i];              }              else {                  return result;              }          }    }    return result;      }};


0 0
原创粉丝点击