压缩字符串
题目描述
实现一个算法来压缩一个字符串。压缩的要求如下:
1.需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进
行压缩。
2.压缩的格式是将连续相同字符替换为字符+数字形式,例如
"AAABCCDDDD"变为“A3BC2D4"。
输入描述
输入一行字符串,长度不超过 500.
输出描述
输出一行。若输入的字符串可压缩,则输出压缩后的字符串,否则输出No。
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char s[100];
gets(s);
int n = strlen(s), cnt = 0, i;
for (i = 1; i < n; i++)
{
if (s[i] == s[i - 1])
break;
}
if (i == n)
printf("NO");
else
{
for (i = 0; i < n; i++)
{
cnt++;
if (s[i] != s[i + 1])
{
printf("%c", s[i]);
if (cnt > 1)
printf("%d", cnt);
cnt = 0;
}
}
}
return 0;
}
#非技术实习信息共享##23届找工作求助阵地##我的实习求职记录#