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

    题目:

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

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

    示例 1:

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

    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。
    说明:

    所有输入只包含小写字母 a-z 。

    解答:

    string longestCommonPrefix(vector<string>& strs) 
    {
        int size = strs.size();
        if (size == 0)
            return "";
        else if (size == 1)
            return strs.at(0);
    
        int len = strs.at(0).length();
        if (len == 0)
            return "";
    
        bool bContinue = true;
        int i = 0;
        for (i = 0; i < len; i++)
        {
            char cI = strs.at(0).at(i);
            for (int j = 1; j < size; j++)
            {
                if (strs.at(j).length() <= i)
                {
                    bContinue = false;
                    break;
                }
                    
                if (strs.at(j).at(i) == cI)
                    continue;
    
                bContinue = false;
                break;
            }
            if (!bContinue)
                break;
        }
    
        if (i == 0)
            return "";
    
        return strs.at(0).substr(0, i);
    }

    上面的判断有些复杂,还使用了一个标志位,修改如下:

    string longestCommonPrefix2(vector<string>& strs)
    {
        int size = strs.size();
        if (size == 0)
            return "";
        else if (size == 1)
            return strs.at(0);
    
        string result = "";
        for (int i = 0; i < strs.at(0).size(); i++)
        {
            char c = strs.at(0).at(i);
            for (int j = 1; j < size; j++)
            {
                if (strs.at(j).length()>i)
                {
                    if (strs.at(j).at(i) != c)
                        return result;
                }
                else
                {
                    return result;
                }
            }
            result += c;
        }
        return result;
    }

    吐槽下代码提交后的排名,感觉波动很大,不准。。。

  • 相关阅读:
    开源协议
    markdown 语法和工具
    mac 终端 使用ftp命令
    谷歌囧大了!安统镜卓5.0刷入遇到system.img系像找不到
    linux下vi命令大全
    python编码处理:unicode字节串转成中文 各种字符串举例说明
    优秀前端资源备忘录
    mousewheel滚轮事件
    bootstrap插件之Carousel
    初识Node.js
  • 原文地址:https://www.cnblogs.com/zyk1113/p/13958978.html
Copyright © 2011-2022 走看看