zoukankan      html  css  js  c++  java
  • 【程序员面试金典】面试题 01.06. 字符串压缩

    题目

    字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。

    示例1:

    输入:"aabcccccaaa"
    输出:"a2b1c5a3"
    

    示例2:

    输入:"abbccd"
    输出:"abbccd"
    解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
    

    提示:字符串长度在[0, 50000]范围内。

    思路:先压缩再比较

    代码

    class Solution {
    public:
        string compressString(string S) {
            string res;
            for (int i = 0; i < S.size(); ++i) {
                res += S[i];
                int cnt = 1;
                for (int j = i + 1; j < S.size(); ++j) {
                    if (S[j] == S[i]) ++cnt;
                    else break;
                }
                i += (cnt - 1);
                res += to_string(cnt);
            }
            return res.size() >= S.size() ? S : res;
        }
    };
    
  • 相关阅读:
    C# 委托/Func() 中 GetInvocationList() 方法的使用 | 接收委托多个返回值
    蒋廷黻著《中国近代史》-中国近代屈辱史读后感
    ASP.NET Core 上传多文件 超简单教程
    Python
    Python
    Python
    Python
    Python
    Python
    Python
  • 原文地址:https://www.cnblogs.com/galaxy-hao/p/12305289.html
Copyright © 2011-2022 走看看