删除重复字符

【题】

删除重复字符


背景:

输入一个长度不超过 100 的字符串,删除串中的重复字符。

输入:

输入要检查的字符串,长度不超过100个字符。例如:abacaeedabcdcd。

输出:

删除重复字符后的字符串。例如:abced。

  测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. abacaeedabcdcd↵
以文本方式显示
  1. abced↵
1秒 64M 0
测试用例 2 以文本方式显示
  1. 111122233344455577yuyuyu↵
以文本方式显示
  1. 123457yu↵
1秒 64M 0

【思路】

1、先申明一个长度为100的字符数组char str_src[100],用来保持输入的字符串。
然后申明另一个字符数组 char str_res[100] ,用来保持str_src中不重复的字符。(可以看出,这里并不是题目上所说的“删除”,而是用另一个数组存储不重复的字符。)

2、具体操作:
逐个扫描str_src中的字符,针对str_src[i],则检查str_res中是否存在str_src[i]。如果不存在,则把str_src[i]添加到str_res中;否则不添加。

例如:测试用例1中,str_src为“ abacaeedabcdcd”,初始时,str_res中没有字符。
从i=0开始,str_src[i] = 'a',检查str_res,发现其中没有字符'a',则将'a'添加到str_res中。
i++;
这时,i=1,str_src[i] = 'b',检查str_res,发现其中没有字符'b',则将'b'添加到str_res中。
i++;
这时,i=2, str_src[i] = 'a',检查str_res,发现其中存在字符'a',则不添加。
i++;
。。。。。。
一直到str_src末尾。

【代码】
#include "stdio.h"
#include "string.h"

int main(int argc, char **argv)
{ 
	char arr_src[100] = {'\0'};
	char arr_res[100] = {'\0'};
	
	gets(arr_src);
	int length_src = strlen(arr_src);
	int length_res = strlen(arr_res);

	int i, j;
	for(i = 0; i < length_src; i++)
	{
		length_res = strlen(arr_res);
		for (j = 0; j < length_res; j++)
		{
			if (arr_res[j] == arr_src[i])
				break;
		}
		if (j == length_res)
		{
			arr_res[j] = arr_src[i];
		}		   	
	}
	puts(arr_res);
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值