2016.3.18华为上机题目:去除重复字符并排序

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

方法一:

<span style="font-size:18px;"><span style="font-size:18px;">#include "iostream"
using namespace std;


char * sortuser(char *p)
{
  int i,j;
  char temp;
  for(i=0;*(p+i)!='\0';i++)
     for(j=i+1;*(p+j)!='\0';j++)
	 {
		 if(*(p+i)>*(p+j))
		 {
			 temp=*(p+i);
			 *(p+i)=*(p+j);
			 *(p+j)=temp;
		 }
	 }

	 return p;

}

int main()
{
  char a[100];
  char *p;
  int i;
  cin>>a;
  p=sortuser(a);
  //cout<<p<<endl;
for(i=0;*(p+i)!='\0';i++)
{
 if(i==0)
 {
	 cout<<*(p+i);
     continue;
 }


 if(*(p+i)==*(p+i-1))
	 continue;
 else
 {
	 if(*(p+i+1)=='\0')
	     cout<<*(p+i)<<endl;
	 else
		 cout<<*(p+i);
 }

}
  return 0;

}</span></span>


方法二:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
int i,j;
char a,c[130];

string ss;
cin>>ss;

    j=0;
    for(i=0;i<128;i++) //从ASCII字符表里顺序找
{
if(ss.end()!=find(ss.begin(),ss.end(),(char)i)) {c[j]=(char)i;j++;}//不等于尾指针  说明找到了
}

    for(i=0;i<j;i++)
cout<<c[i];
cout<<endl;
return 0;
}


点赞