6 solutions

  • 4
    @ 2023-12-2 15:16:28
    #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
      @ 2024-11-13 17:03:24
      #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;
      }
      
      • 1
        @ 2024-3-4 18:11:31
        #include<bits/stdc++.h>
        using namespace std;
        bool cmp(string x,string y){
        	return x<y;
        }
        string x[100000];
        int main() {
        	int i=0;
        	while(cin>>x[i])
        		i++;
        	sort(x,x+i,cmp);
        	cout<<x[0]<<"\n";
        	for(int j=1;j<i;j++){
        		if(x[j]!=x[j-1])
        		cout<<x[j]<<"\n";
        	}
        	return 0;
        }
        
        • 0
          @ 2024-12-13 19:39:03
          # 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
            @ 2024-1-6 12:03:06
            #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;
            }
            
            • -3
              @ 2023-11-1 16:59:00
              #include<iostream>
              #include<set>
              using namespace std;
              int main()
              {
               string s;	
               set<string>a;
               while(cin>>s)//输入
               {
                a.insert(s);
               }
               for(set<string>::iterator i=a.begin(); i!=a.end();i++)//输出
               {
                cout<<*i<<endl;
               }
               return 0;
              }
              
              • @ 2023-11-4 16:14:19

                set<string>::iterator 可以用 auto 语法哦(C++11及以后可以用)

              • @ 2023-11-15 16:49:25

                集合👍

              • @ 2024-1-6 12:03:36

                没必要

            • 1

            Information

            ID
            671
            Time
            1000ms
            Memory
            256MiB
            Difficulty
            3
            Tags
            # Submissions
            64
            Accepted
            34
            Uploaded By