蓝桥杯 3. 压缩字符串

压缩字符串

原题目链接

题目描述

实现一个算法来压缩一个字符串。压缩的要求如下:

  • 需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进行压缩。
  • 压缩的格式是将连续相同字符替换为字符 + 数字形式,例如 "AAABCCDDDD" 变为 "A3BC2D4"。

输入描述

  • 输入一行字符串,长度不超过 500。

输出描述

  • 输出一行。若输入的字符串可压缩,则输出压缩后的字符串,否则输出 NO。

输入输出样例

输入

in 复制代码
AAABCCDDDD

输出

out 复制代码
A3BC2D4

c++代码

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

int main() {
    string str, ans;
    cin >> str;
    for (int i = 0; i < str.size();) {
        char a = str[i];
        int cont = 0;
        while(i + cont < str.size() && str[i + cont] == a) cont++;
        ans += a;
        if (cont > 1) ans += to_string(cont);
        i = i + cont;
    }
    if (ans != str) cout << ans;
    else cout << "NO";
    return 0;
}//by wqs
相关推荐
杨逢昌工厂6S管理1 分钟前
116——杨逢昌:归位三定闭环法的旺季轻量化执行方案与工具清单
经验分享·笔记·职场和发展·学习方法
sanqima4 分钟前
CreateThread、_beginthreadex、AfxBeginThread三种线程创建的区别与联系
c++·tls·线程创建
怦然丶心动5 分钟前
用 Java 把干支历法算清楚:从节气切年到可读摘要
java·算法·vue·独立开发·spring boot / spring
HPtiger10 分钟前
数据结构——插入排序
数据结构·排序算法
sanqima11 分钟前
依赖TLS和模块状态的MFC类
c++·mfc·tls·module state
Zachery Pole17 分钟前
具身智能强化学习(1)引言
算法·机器学习
xuxigifxfh18 分钟前
面试记录2026
java·mysql·面试·职场和发展
All for pursuit.19 分钟前
【动态规划-11】279.完全平方数
数据结构·c++·算法·leetcode·动态规划
淡海水25 分钟前
02-06-原理篇-增量式GC与并发GC
算法·unity·c#·并发·gc·增量
对空六课28 分钟前
无头浏览器访问对跳出率的过滤规则
服务器·前端·算法·数据分析