华为机试题C++-去除重复字符并排序

题目:去除重复字符并排序 

去除重复字符并排序

运行时间限制:无限制
内容限制:       无限制
输入:              字符串
输出:              去除重复字符并排序的字符串
样例输入:       aabcdefff

样例输出:       abcdef

C++实现如下:

#include<iostream>
using namespace std;
#include<string>

void char_output(char *input)
{
       int hash[256];
	   memset(hash,0,sizeof(hash));
	   char *p=input;
	   while(*p!='\0')
	   {
	         hash[*p]++;
			 p++;
	   }
	   char *pbegin=input;
	   for(int i=0;i!=256;i++)
	   {
	         if(hash[i]!=0)
			 {
				 char ch=(char)i;
			      cout<<ch;
			 }
	   }
}

int main()
{
     //char ch[30]="ccaabbccghhy";
	 char ch[100];
	 gets_s(ch);
	 char_output(ch);
	 system("pause");
	 return 0;
}

注:可以用hash表直接实现,非常方便!而这其中涉及到一个强制转换的问题(int转char),输出的字符串就是排序的字符串。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值