压缩字符串

题目描述

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

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届找工作求助阵地##我的实习求职记录#
全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务