这题只要把字符串排序即可,从头开始输出,如果后面一个与前面一个字符相同则跳过。
1 #include<iostream> 2 #include<string> 3 #include<string.h> 4 #include<stdlib.h> 5 #include<algorithm> 6 using namespace std; 7 int main(){ 8 string temp; 9 int visit[10000]; 10 while(getline(cin,temp)){ 11 memset(visit,0x0,sizeof(visit)); 12 //sort(temp[0],temp[temp.size()-1]); 13 int isvalid=0; 14 for(int i=0;i<temp.size();i++){ 15 if(!isdigit(temp[i])&&!islower(temp[i])){ 16 cout<<"<invalid input string>"<<endl; 17 isvalid=1; 18 break; 19 } 20 } 21 if(isvalid) 22 continue; 23 for(int i=0;i<temp.size();i++){ 24 for(int j=i+1;j<temp.size();j++){ 25 if(temp[i]>temp[j]) 26 swap(temp[i],temp[j]); 27 } 28 } 29 int num=0,len=temp.size(); 30 while(num<len){ 31 char ctemp=‘A‘; 32 for(int i=0;i<temp.size();i++){ 33 if(visit[i]) 34 continue; 35 if(temp[i]==ctemp) 36 continue; 37 cout<<temp[i]; 38 ctemp=temp[i]; 39 visit[i]=1; 40 num++; 41 } 42 } 43 44 cout<<endl; 45 } 46 }
微软2014实习生及秋令营技术类职位在线测试-1.StringReorder.cpp,布布扣,bubuko.com
微软2014实习生及秋令营技术类职位在线测试-1.StringReorder.cpp
原文:http://www.cnblogs.com/royjwy/p/3663520.html