首页 > 其他分享 >443.压缩字符串

443.压缩字符串

时间:2023-06-13 16:59:18浏览次数:41  
标签:cnt slow 443 压缩 fast int && 字符串 chars

问题描述

443.压缩字符串

解题思路

双指针、滑动窗口,注意for循环中不需要fast++

代码

class Solution {
public:
    int compress(vector<char>& chars) {
        vector<char> res;
        int cnt = 0;
        for (int slow = 0, fast = 0; fast < chars.size(); ) {
            while (fast < chars.size() && chars[fast] == chars[slow])
                fast++;
            cnt = fast - slow;
            if (cnt == 1)
                res.push_back(chars[slow]);
            else if (cnt > 1 && cnt <= 9) {
                res.push_back(chars[slow]);
                res.push_back(cnt + '0');
            } else if (cnt >= 10 && cnt <= 99) {
                res.push_back(chars[slow]);
                res.push_back(cnt / 10 + '0');
                res.push_back(cnt % 10 + '0');
            } else if (cnt >= 100 && cnt <= 999) {
                res.push_back(chars[slow]);
                res.push_back(cnt / 100 + '0');
                res.push_back((cnt % 100) / 10 + '0');
                res.push_back((cnt % 100) % 10 + '0');
            } else {
                res.push_back(chars[slow]);
                res.push_back(cnt / 1000 + '0');
                res.push_back((cnt % 1000) / 100 + '0');
                res.push_back((cnt % 1000) % 100 / 10 + '0');
                res.push_back(cnt % 1000 % 100 % 10 + '0');
            }
            slow = fast;
        }
        chars = res;
        return res.size();
    }
};

标签:cnt,slow,443,压缩,fast,int,&&,字符串,chars
From: https://www.cnblogs.com/zwyyy456/p/17478089.html

相关文章

  • 926.将字符串翻转到单调递增
    问题描述926.将字符串翻转到单调递增(Medium)如果一个二进制字符串,是以一些0(可能没有0)后面跟着一些1(也可能没有1)的形式组成的,那么该字符串是单调递增的。给你一个二进制字符串s,你可以将任何0翻转为1或者将1翻转为0。返回使s单调递增的最小翻转次数。示例......
  • 1405.最长快乐字符串
    问题描述1405.最长快乐字符串(Medium)如果字符串中不含有任何'aaa','bbb'或'ccc'这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。给你三个整数a,b,c,请你返回任意一个满足下列全部条件的字符串s:s是一个尽可能长的快乐字符串。s中最多有a个字母'......
  • RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2 新增解压缩工具类ZipHelper
    在项目对文件进行解压缩是非常常用的功能,对文件进行压缩存储或传输可以节省流量与空间。压缩文件的格式与方法都比较多,比较常用的国际标准是zip格式。压缩与解压缩的方法也很多,在.NET2.0开始,在System.IO.Compression中微软已经给我们提供了解压缩的方法GZipStream。对于GZipSt......
  • 28.找出字符串中第一个匹配项的下标 (Medium)
    问题描述28.找出字符串中第一个匹配项的下标(Medium)给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。示例1:输入:haystack="sadbutsad",needle="sad......
  • 字符串哈希算法
    问题描述考虑1044.最长重复子串(Hard),本题思路并不难,可以使用二分答案来解决,假设答案为mid,那么长度大于mid的子串在s中只会出现一次,否则至少出现两次。因此只需要考虑子串在s中的出现次数即可,比较直接的想法是使用key为string的unordered_map,然而unoredere_map......
  • git【fatal: unable to access 'XXXX': Failed to connect to github.com port 443 a
    依次将如下两条语句复制到git中后,点击回车gitconfig--global--unsethttp.proxygitconfig--global--unsethttps.proxywin+r打开cmd,将ipconfig/flushdns复制,点击回车,清理DNS缓存 ......
  • 从HEVC到通用视频编码的下一代视频压缩技术
    本文来自于ATEME研究总监兼总监米克尔·劳莱特的主题演讲。他主要分享了MPEG-2、H.264、H.265、H.265、VVC,以及EVC、LCEVC等较新的编解码器。我们需要了解HEVC方面的编解码器授权,以及VVC标准化的过程。在探索的过程中,我们从Intra-coding和Inter-prediction方法等方面对图片分割进行......
  • Python如何把字符串中形如'\uXXXX'的Unicode字符转换为原始字符
    jsonpickle保存的文本有形如"\u6211\u7684"的字符,看起来很不方便,怎么转换为原始字符呢?参考如下代码:importjsonpickle#定义一个包含Unicode编码字符的字符串text="我的名字是\u674e\u5b87\u5b87"#将字符串保存为JSON格式json_string=jsonpickle.encode(text)......
  • 压缩包版MySQL8安装
    1、下载解压链接:https://pan.baidu.com/s/11OxndQSx9GVP30chaGf7uA?pwd=1mfh提取码:1mfh2、新建ini文件在MySQL根目录新建(具有bin文件夹那一级)[mysqld]<!--设置3306端口-->port=3306<!--设置mysql的安装目录-->basedir=D:\File\Mysql\mysql-8.0.22-winx64<!--设置mysql......
  • python 中格式化字符串
     001、format>>>"{0}love{1}.{2}".format("I","FishC","com")##位置参数'IloveFishC.com'>>>"{a}love{b}.{c}".format(a="I",b="FishC"......