6 solutions
-
4
#include<bits/stdc++.h>; using namespace std; string n; string s[105],sum="";//s存单词,sum读字符 int q=-1;//数组下标,之所以是-1是因为++q bool cmp(string a,string b){//排序 return a<b; } int main(){ getline(cin,n); n+=' ';//加空格不然读不到 int t=n.size(); for(int i=0;i<t;i++){ if(n[i]==' ') s[++q]=sum,sum="";//注意这里用逗号 else sum+=n[i]; } sort(s,s+q+1,cmp);//多一次因为要读最后一个单词 for(int i=0;i<q;i++){//去重 if(s[i]==s[i+1]) s[i]=""; } for(int i=0;i<=q;i++){ if(s[i]!=" "&&s[i]!="")//注意别输出上面sum存的空串 cout<<s[i]<<endl; } return 0;//不必多言 }
挺好
-
1
#include<bits/stdc++.h> using namespace std; string s[110]; bool cmp(string a, string b) { return a < b;//字典序排序 } int main() { int sum = 0;//记录有多少个单词 while(cin >> s[sum++]); sort(s, s + sum, cmp); for(int i = 0; i < sum; i++) { if(s[i + 1] != s[i])//查重 { cout << s[i] << endl; } } return 0; }
-
0
# include<bits/stdc++.h> using namespace std; string ppp[101]; bool cmp(string a, string b) { return a<b; } int main(){ int n=0; bool f; while(cin>>ppp[n]){ f=false; for(int i=0;i<n;i++)if(ppp[n]==ppp[i])f=true;//检测是否重复 if(f==false)n++; } sort(ppp,ppp+n,cmp); for(int i=0;i<n;i++)cout<<ppp[i]<<endl; return 0; }
-
0
#include<bits/stdc++.h>; using namespace std; string n,s[105],sum="";int q=-1; bool cmp(string a,string b){return a<b;} int main(){ getline(cin,n);n+=' ';int t=n.size(); for(int i=0;i<t;i++){ if(n[i]==' ') s[++q]=sum,sum=""; else sum+=n[i]; } sort(s,s+q+1,cmp); for(int i=0;i<q;i++) if(s[i]==s[i+1]) s[i]=""; for(int i=0;i<=q;i++){ if(s[i]!=" "&&s[i]!="")//注意别输出上面sum存的空串 cout<<s[i]<<endl; } return 0; }
- 1
Information
- ID
- 671
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 64
- Accepted
- 34
- Uploaded By