1185:单词排序
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)
【输入】
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。
【输出】
按字典序输出这些单词,重复的单词只输出一次。
【输入样例】
She wants to go to Peking University to study Chinese
【输出样例】
Chinese
Peking
She
University
go
study
to
wants
【来源】
No
1. #include<iostream> 2. #include<cstdio> 3. #include<cstring> 4. #include<string> 5. #include<algorithm> 6. using namespace std; 7. int main() 8. { 9. string a[100]; 10. int k=0; 11. bool flag; 12. int i; 13. while(cin>>a[k]) { 14. flag=false; 15. for(i=0;i<k;i++) { 16. if(a[i].compare(a[k])==0) { 17. flag=true; 18. break; 19. } 20. } 21. if(!flag) k++; 22. } 23. sort(a,a+k); 24. for(i=0;i<k;i++) cout<<a[i]<<endl; 25. return 0; 26. }
1. #include <iostream> 2. #include <string> 3. #include <algorithm> 4. using namespace std; 5. int main(int argc, char *argv[]) 6. { 7. string word[1000]; 8. string s; 9. int n=0,i; 10. while(cin>>s)word[n++]=s; 11. sort(&word[0],&word[n]); 12. for(i=0;i<=n;i++) 13. if(word[i]!=word[i+1]) cout<<word[i]<<endl; 14. return 0; 15. }
1. #include <iostream> 2. #include <string> 3. #include <algorithm> 4. using namespace std; 5. int main(int argc, char *argv[]) 6. { 7. string word[1000]; 8. string s; 9. char buf[5000]; 10. int n=0,i; 11. while(getline(cin,s)){ 12. int b=0; 13. for(i=0;i<s.size();i++){ 14. if((i==0 && s[i]!=' ') || (i>0 && s[i-1]==' ' && s[i]!=' ')) 15. b=i; 16. if((i>0 && i<s.size()-1 && s[i]!=' ' && s[i+1]==' ') || 17. (i==s.size()-1 && s[i]!=' ')){ 18. word[n++]=s.substr(b,i-b+1); 19. } 20. 21. } 22. } 23. sort(&word[0],&word[n]); 24. for(i=0;i<=n;i++) 25. if(word[i]!=word[i+1]) cout<<word[i]<<endl; 26. return 0; 27. }