美文网首页
2020-03-16 刷题1(字符串)

2020-03-16 刷题1(字符串)

作者: nowherespyfly | 来源:发表于2020-03-17 11:17 被阅读0次

01.06 字符串压缩

标签:字符串,内存
题目其实很简单,用模拟法模拟字符串的压缩过程即可。但是我提交了三次,因为爆内存了。看了评论区才发现一个隐藏的坑:

c_s = c_s + c + to_string(cnt) // 会给c_s + c + to_string(cnt) 开辟新的内存来存放,如果字符串很长,就会爆内存
c_s += c + to_string(cnt) // 相当于在c后面append,不会开辟新的内存

所以,以后能用+= 就不要用= ...+...了吧

public:
    string compressString(string S) {
        if(S.size() == 0) return S;
        string c_s;
        char c = S[0];
        short cnt = 1;
        for(int i = 1; i <S.size(); i++){
            if(S[i] == c)
                cnt++;
            else{
                //不能写成c_s = c_s + c _ to_string(cnt), 会爆内存
                c_s += c + to_string(cnt);  
                cnt = 1;
                c = S[i];
            }
        }
        c_s += c + to_string(cnt);
        if(c_s.size() >= S.size()) return S;
        return c_s;
    }
};

相关文章

  • 2020-03-16 刷题1(字符串)

    01.06 字符串压缩 标签:字符串,内存题目其实很简单,用模拟法模拟字符串的压缩过程即可。但是我提交了三次,因为...

  • leetcode刷题之字符串

    leetcode刷题,使用python 1, 无重复字符的最长子串 —— 0003 字符串 给定一个字符串 s ,...

  • Manacher's Algorithm 的理解

    在 leetcode 刷题刷到求字符串的最长回文字串,而马拉车算法(Manacher's Algorithm), ...

  • 【第七章】python算法刷题开始(3-初级)

    今天继续刷题,但感觉今天遇到的每个题都有点困惑,大家一起帮忙看看: 1、旋转字符串 我的代码: 代码也经过多次验证...

  • 教你怎么做一只考试锦鲤

    考试前14天疯狂刷题,各个平台疯狂刷题,刷题就对了。 刷的越多,大脑记得越多,也许你刷10道题,能记住的只有1道题...

  • leecode刷题(16)-- 字符串转换整数

    leecode刷题(16)-- 字符串转换整数 字符串转换整数 描述: 请你来实现一个 atoi 函数,使其能将字...

  • 刷题说(1)

    所谓高效刷题,应该是根据结构化思维所呈现出的不足,而进行的针对性提高。 如果按我最近说的框架学习法,那就是去填充框架。

  • leetcode刷题-1

    小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一...

  • 刷题纠错-1

    5.21卷二 1、留置权的概念与构成要件

  • 刷题总结(1)

    题目描述 给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。 输入描述 本题有多组输入每行一个数n...

网友评论

      本文标题:2020-03-16 刷题1(字符串)

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