关闭

LeetCode Longest Common Prefix

标签: leetcode
62人阅读 评论(0) 收藏 举报
分类:

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

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12574次
    • 积分:1822
    • 等级:
    • 排名:千里之外
    • 原创:175篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条