zoukankan      html  css  js  c++  java
  • [LeetCode]32. Longest Common Prefix最长公共前缀

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

    解法:从所有的string的头到尾的字母逐一比较即可。

    class Solution {
    public:
        string longestCommonPrefix(vector<string>& strs) {
            int n = strs.size(), i = 0;
            bool flag = false;
            if (n == 0) return string("");
            if (n == 1) return strs[0];
            while (true)
            {
                for (int j = 0; j < n - 1; j++)
                {
                    if (i >= strs[j].size() || strs[j][i] != strs[j + 1][i])
                    {
                        flag = true;
                        break;
                    }
                }
                if (flag) break;
                i++;
            }
            return string(strs[0].begin(), strs[0].begin() + i);
        }
    };

    精简得到一个更简洁的代码版本:

    class Solution {
    public:
        string longestCommonPrefix(vector<string>& strs) {
            int n = strs.size();
            if (n == 0) return string("");
            for(int i = 0; i < strs[0].size(); i++)
            {
                for (int j = 0; j < n - 1; j++)
                {
                    if (i >= strs[j].size() || strs[j][i] != strs[j + 1][i])
                        return strs[j].substr(0, i);
                }
            }
            return strs[0];
        }
    };
  • 相关阅读:
    [SHOI2015]脑洞治疗仪
    [SDOI2016]数字配对
    [SDOI2019]快速查询
    [HNOI2019]JOJO
    [TJOI2019]甲苯先生和大中锋的字符串
    [CQOI2017]老C的方块
    [CQOI2017] 小Q的表格
    [SHOI2012] 火柴游戏
    板子
    自我介绍
  • 原文地址:https://www.cnblogs.com/aprilcheny/p/4900329.html
Copyright © 2011-2022 走看看