微软2014实习生及秋令营技术类职位在线测试-1.StringReorder.cpp

这题只要把字符串排序即可,从头开始输出,如果后面一个与前面一个字符相同则跳过。

 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 }

 

posted on 2014-04-14 10:48  云在心  阅读(194)  评论(0)    收藏  举报

导航