美文网首页
2020-06-19 LC-14最长公共前缀

2020-06-19 LC-14最长公共前缀

作者: NO_OcaNE | 来源:发表于2020-06-19 00:35 被阅读0次

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

输入: ["flower","flow","flight"]
输出: "fl"
这次大概是我第一次,比较顺利的coding出来的题目。
但是被string的一个陌生语法坑了一个小时
先上代码

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int n = strs.size();
        string maxL;
        char s = '\0';
        if(n == 0) return "";
        if(n == 1) return strs[0];
        for(auto c : strs[0])
        {
            for(int i = 1; i < n; i++)
            {
                if(strs[i].empty()) {s='\0'; break;}
                s = strs[i][0];
                if(s != c) {s='\0'; break;}
                else strs[i].erase(0,1);

            }
            if(s != '\0' && c == s)
            {
            maxL += s;
            }
            else
                break;
        }
        return maxL;
    }
};

主要是string.erase()函数的用法

#include <iostream>
#include <string>

int main ()
{
  std::string str ("This is an example sentence.");
  std::cout << str << '\n';
                                           // "This is an example sentence."
  str.erase (10,8);                        //            ^^^^^^^^
  std::cout << str << '\n';
                                           // "This is an sentence."
  str.erase (str.begin()+9);               //           ^
  std::cout << str << '\n';
                                           // "This is a sentence."
  str.erase (str.begin()+5, str.end()-9);  //       ^^^^^
  std::cout << str << '\n';
                                           // "This sentence."
  return 0;
}

如果()中间放两个参数,就是删除中间一段;如果只放一个,就是删除该数字往后的所有。
我的问题是没注意这个语法的使用规则,想删除第一个字符,结果写成str.erase(0),删除了所有

相关文章

  • 2020-06-19 LC-14最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 输入: ["flower"...

  • LeetCode 每日一题 [19] 最长公共前缀

    LeetCode 最长公共前缀 [简单] 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回...

  • 14. 最长公共前缀

    20180923-摘抄自14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,...

  • 5,最长公共前缀/数组与字符串

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1:...

  • Swift 最长公共前缀 - LeetCode

    题目: 最长公共前缀 描述: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""...

  • leetcode探索之旅(14)

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1: ...

  • Leetcode 14 最长公共前缀

    最长公共前缀 题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

  • LeetCodeSwift 14.Longest Common

    题目 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

  • [day4] [LeetCode] [title14,122]

    14.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例 ...

  • 14. 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 说明...

网友评论

      本文标题:2020-06-19 LC-14最长公共前缀

      本文链接:https://www.haomeiwen.com/subject/ugrmxktx.html