2015年 华为机试题 (二) 去除重复字符并排序

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




#include<iostream>
using namespace std;
char* Del_Order(char* str)
{
int len=strlen(str);
char*temp=str;
char*newStr=new char[len+1];
int count=0;
newStr[0]=temp[0];
int i=1;
while(temp[i]!='\0')
{
int j;
for(j=count;j>=-1;j--)
{




if(temp[i]==newStr[j])break;
if(j==-1 || (j>=0 &&temp[i]>newStr[j]))
{
int k;
for(k=count;k>j&& k>=0;k--)
{
newStr[k+1]=newStr[k];
}
newStr[k+1]=temp[i];
count++;
break;
}
}
i++;
}
newStr[count+1]='\0';
return newStr;
}
int main()
{
char* str="affabcfde";
char*temp=Del_Order(str);
cout<<"before: "<<str<<endl;
cout<<" after: "<<temp<<endl;
if(temp!=NULL)
delete []temp;
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值