[LeetCode] Longest Common Prefix

原创 2015年07月09日 19:19:54

这里写图片描述
字符串的最长公共前缀
先写以个两个string比较的,之后O(n)在vector中滑动比较

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int i = 1;
        string com_s;
        if(strs.size()==0)  return string("");
        if(strs.size()==1)  return strs[0];
        com_s = strs[0];
        while(i!=strs.size())
            com_s = check_two(com_s,strs[i++]);
        return com_s;


    }
    string check_two(string &s1, string &s2){
        int i;
        for(i = 0; i != min(s1.size(),s2.size()); ++i)
            if(s1[i]!=s2[i])
                break;
        return s1.substr(0,i);
    }
};

当然用c写也是可以的check_two部分找到不相同的字符时要注意是否为\0,是\0就可以直接返回s1,没有到达\0将其变成\0即可

#define min(x,y) (x)<(y)?(x):(y)
char* check_two(char *s1, char *s2){
    int i =0;
    char *tmp;
    if(strlen(s1)>strlen(s2)){
        tmp = s1;
        s1 = s2;
        s2 = tmp;
    }
    for(i = 0; i != strlen(s1); ++i)
        if(s1[i]!=s2[i])
            break;
    if(i!=strlen(s1))
        s1[i] = '\0';
    return s1;

}
char* longestCommonPrefix(char** strs, int strsSize) {
    if(strsSize==1) return strs[0];
    if(strsSize==0) return "";
    char *com_s = strs[0];
    int i =1;
    while(i!=strsSize)
        com_s = check_two(com_s,strs[i++]);
    return com_s;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode014 Longest Common Prefix

详细见:leetcode.com/problems/longest-common-prefix/ Java Solution: github package leetcode; pu...
  • zxwtry
  • zxwtry
  • 2017年03月28日 17:27
  • 95

leetcode_Longest Common Prefix

有两种思路: 1.从0向最大的公共前缀长度进行,i=0,即每次从0循环至strs.length,所有的字符都相等,则count++,直至有一个字符不相同为止,循环终止 2.假设 longest com...

leetcode 第14题 Longest Common Prefix

这个题的要求是找最长的公共前缀,一开始我竟然没有看懂题目的意思。。        这个函数的形参是vector容器,那么在testcase中输入测试例子的时候我遇到了一点困难,就是不知道应该以什么样的...

LeetCode-- Longest Common Prefix

问题这个题,leetcode给的信息很少。题目本身是要求一组字符串的相同的前缀(Prefix)。分析这个问题,看起来简单,实际上各种边界条件多,坑多。笔者花了一点时间才完全在leetcode上跑通。这...

LeetCode OJ-14.Longest Common Prefix

LeetCode OJ-14.Longest Common Prefix题目描述 Write a function to find the longest common prefix string...

LeetCode 14 Longest Common Prefix(最长公共前缀)(String)

翻译写一个函数(或方法)来寻找一个字符串数组中的最长公共前缀。原文Write a function to find the longest common prefix string amongst a...
  • NoMasp
  • NoMasp
  • 2015年10月16日 22:05
  • 6063

《leetCode》:Longest Common Prefix

题目描述 Write a function to find the longest common prefix string amongst an array of strings. 大意就...

LeetCode #14 Longest Common Prefix 最长公共前缀 解题小节

1 题目理解题目的理解就是给定一堆字符串,从中找出最长的公共前缀。前缀是什么?可以理解为一个字符串开头的几个字母,那么公共前缀,就是这一堆字符串开头的前几个(前缀)的最大相同长度是多少。。。就是所有字...
  • MebiuW
  • MebiuW
  • 2016年03月16日 23:16
  • 598

leetcode014 Longest Common Prefix

14. Longest Common Prefix Write a function to find the longest common prefix string amongst an arra...

Leetcode_14_Longest Common Prefix

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/40555783 Longest Common Prefix ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[LeetCode] Longest Common Prefix
举报原因:
原因补充:

(最多只允许输入30个字)