zoukankan      html  css  js  c++  java
  • Leetcode(14)-最长公共前缀

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

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

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"
    

    示例 2:

    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。
     string longestCommonPrefix(vector<string>& strs)
    {
        if(strs.empty())
            return "";
            //return NULL;
        int min = strs[0].size();
        for(int i=0;i<strs.size();i++)
        {
            if(strs[i].size()<min)
                min=strs[i].size();
        }
        string com;
        for(int j=0;j<min;j++)
        {
            vector<string>::iterator i = strs.begin();
            char c = (*i)[j];
            while(i<strs.end())
            {
                if(c==(*i)[j])
                {
                    i++;
                }
                else
                    return com;
            }
            com+=c;
        }
        return com;
    }

    自己程序的思路:我们首先要判断字符串中最短的那个,以它的长度作为我们遍历位数的最大值。然后依次对每个字符串的每一位做判断,看是否相等,如果相等,就算一位,不相等,就停止遍历。需要注意的地方是,空字符串的返回和return NULL是两个不同的概念。return " "表示会创建一个对象,内容是" ",有内存空间,但是return NULL代表直接返回一个空指针,没有内存空间,没有对象。上述程序如果写成return NULL 的话,会出现错误terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_M_construct null not valid

  • 相关阅读:
    《锋利的jQuery》补充笔记
    sass学习笔记
    《HTML5与CSS3基础教程》学习笔记 ——补充
    ajax常见问题(部分)
    html新特性(部分)
    less 笔记
    《JavaScript高级程序设计》补充笔记2
    《JavaScript高级程序设计》补充笔记1
    《CSS3秘笈》备忘录
    显示实现接口的好处c#比java好的地方
  • 原文地址:https://www.cnblogs.com/mini-coconut/p/8962311.html
Copyright © 2011-2022 走看看