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;
        }
    };
    
  • 相关阅读:
    Yslow-23条规则
    ASP.Net MVC多语言
    Java笔记--反射机制
    Java笔记--常用类
    Java笔记--多线程
    Java--IO流
    Java笔记--枚举&注解
    Java笔记--泛型
    Java笔记--异常
    Java笔记--集合
  • 原文地址:https://www.cnblogs.com/galaxy-hao/p/12305289.html
Copyright © 2011-2022 走看看