蓝桥杯 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
相关推荐
MobotStone3 分钟前
无代码+AI时代,为什么你仍然需要像个开发者一样思考
人工智能·算法
测试老哥28 分钟前
软件测试之单元测试
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
緈福的街口28 分钟前
【leetcode】584. 寻找用户推荐人
算法·leetcode·职场和发展
future141233 分钟前
游戏开发日记
数据结构·学习·c#
今天背单词了吗98035 分钟前
算法学习笔记:17.蒙特卡洛算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·笔记·考研·算法·蒙特卡洛算法
wjcurry1 小时前
完全和零一背包
数据结构·算法·leetcode
逐花归海.1 小时前
『 C++ 入门到放弃 』- 多态
开发语言·c++·笔记·程序人生
hie988941 小时前
采用最小二乘支持向量机(LSSVM)模型预测气象
算法·机器学习·支持向量机
qq_433554542 小时前
C++ 选择排序、冒泡排序、插入排序
数据结构
python_tty2 小时前
排序算法(一):冒泡排序
数据结构·算法·排序算法