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

443.string-compression 压缩字符串

时间:2022-12-08 19:15:13浏览次数:69  
标签:cnt slow string 443 chars fast int && compression

问题描述

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,string,443,chars,fast,int,&&,compression
From: https://www.cnblogs.com/zwyyy456/p/16967006.html

相关文章

  • Java中String类型判空
    根据之前的学习,我们已经知道在Java中String类型是不可以通过==直接判等的,而应该通过equals()那么在Java中String类型要如何判空呢? 在最开始,我以为判空是这样进行的——......
  • toString转化成Json或实体对象
    废话不多说,代码上一波!!! 实体中生成的toSting转json格式或者转实体类格式packagecom.xxx.util;importcom.alibaba.fastjson.JSON;importjavafx.util.Pair;importo......
  • 7、StringBuffer与日期相关类
    StringBuffer类1、 String类的内容一旦声明就不可以改变,如果改变其实是换了一个String对象,如果要改变字符串内容怎么办,可以使用StringBuffer类2、 因为String类改变是通......
  • string字符串扩展
    ///<summary>//////</summary>publicstaticclassStringExtentions{///<summary>///转换为MD5加密后的字符串(默认加密为32......
  • Java难点 | StringBuilder类/StringBuffer类
    StringBuilder类/StringBuffer类stringBuffer/strinaBuilder可以看做可变长度字符串。stringBuffer/stringBuilder初始化容量16.stringBuffer/stringBuilder是完成字符......
  • 配置redis遇到Could not resolve placeholder 'redis.maxIdle' in string value "${re
    这个错误是读取不到我们自己redis.properties文件,因为我们在配置数据库链接时已经配置过一次  “Spring容器是采用反射扫描的发现机制,通过标签的命名空间实例化实例,......
  • 使用自定义类加载器打破双亲委派机制实现自定义String类
    今天我和大家如何用自定义加载器打破双亲委派机制。在介绍双亲委派机制前,我先来聊聊Java里面有几种类加载器。引导类加载器:Bootstrapclassloader扩展类加载器:ExtClassLoade......
  • String类常用方法
    String类概述概述java.lang.String类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例。类String中包括用于检查各个字符串的方法,比如......
  • Day33:String类及其常用方法详解
    String类1.1String类概述Java中字符串属于对象,String类用于创建和操作字符串。最简单的字符串创建:直接通过String创建Stringstr="工地佬";利用String构造器创建字......
  • go type string的用法
    packagemainimport"fmt"typeDDstringconst(CDD="dd"DDD="cc")func(DD)JoinString()DD{returnC+D}funcmain(){C.JoinString()D.JoinSt......