蓝桥杯 3. 压缩字符串
压缩字符串
原题目链接
题目描述
实现一个算法来压缩一个字符串。压缩的要求如下:
- 需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进行压缩。
- 压缩的格式是将连续相同字符替换为字符 + 数字形式,例如
"AAABCCDDDD"
变为"A3BC2D4"
。
输入描述
- 输入一行字符串,长度不超过 500。
输出描述
- 输出一行。若输入的字符串可压缩,则输出压缩后的字符串,否则输出
NO
。
输入输出样例
输入
AAABCCDDDD
输出
A3BC2D4
c++代码
#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