蓝桥杯 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
相关推荐
im_AMBER1 分钟前
Leetcode 63 定长子串中元音的最大数目
c++·笔记·学习·算法·leetcode
小白程序员成长日记1 小时前
2025.11.29 力扣每日一题
数据结构·算法·leetcode
咫尺的梦想0072 小时前
链表-反装链表
数据结构·链表
在黎明的反思2 小时前
进程通信之消息队列(IPC)
算法
老鱼说AI2 小时前
算法基础教学第一步:数据结构
数据结构·python·算法
极地星光2 小时前
C++链式调用设计:打造优雅流式API
服务器·网络·c++
Jing_Rainbow3 小时前
【LeetCode Hot100 刷题日记(19/100)】54. 螺旋矩阵 —— 数组、矩阵、模拟、双指针、层序遍历🌀
算法·面试·程序员
美团测试工程师3 小时前
最常见的软件测试面试题及答案
软件测试·面试·职场和发展
小陈要努力3 小时前
Visual Studio 开发环境配置指南
c++·opengl
程序猿本员3 小时前
5. 实现
c++