8 solutions

  • 3
    @ 2023-11-20 21:40:04
    #include<bits/stdc++.h>
    using namespace std;
    string n[205],x,s="";
    int q=-1;
    int main(){
    	getline(cin,x);
    	x+=" ";//加上空格以读取最后一个单词 
    	string a="",m=x;//分别为最大、最小 
    	int t=x.size();
    	for(int i=0;i<t;i++){
    		if(x[i]==' '||x[i]==','){
    			if(s.length()>a.length()) a=s;//判断 
    			if(s.length()<m.length()) m=s;
    			s="";
    		}if(x[i]!=' '&&x[i]!=',') s+=x[i];//读词 
    		
    	}
    	cout<<a<<endl;
    	cout<<m<<endl;
    	return 0;//无需多言 
    }
    
    • 0
      @ 2024-1-6 11:54:35
      #include <bits/stdc++.h>
      using namespace std;
      string n[205],x,s="";int q=-1;
      int main(){
      	getline(cin,x);x+=" ";
      	string a="",m=x;int t=x.size();
      	for(int i=0;i<t;i++){
      		if(x[i]==' '||x[i]==','){
      			if(s.length()>a.length()) a=s;
      			if(s.length()<m.length()) m=s;
      			s="";
      		}
      		if(x[i]!=' '&&x[i]!=',') s+=x[i];
      	}
      	cout<<a<<endl<<m<<endl;
      	return 0;
      }
      
      • 0
        @ 2023-10-28 19:52:41
        #include<iostream>
        #include<string>
        using namespace std;
        int main()
        {
         string a;
         getline(cin,a);//输入
         a+=' ';
         string s="",b="",m=a;//最长,目前,最短
         for(int i=0;i<a.length();i++)
         { 
          if(a[i]==' ' || a[i]==',')//单词间隔
          {
           if(b.length()>s.length())//是否是最长
           {
            s=b;
           }
           if(b.length()<m.length())//是否是最短
           {
            m=b;
           }
           b="";//重置
          }
          else
           b+=a[i];//连接当前字符
         }
         cout<<s<<endl<<m;//输出
         return 0;//完结散花!
        }
        
        • 0
          @ 2023-10-15 10:57:27
          using namespace std;
          int main()
          {
          	char a[20000];
          	gets(a); //输入数组
          	int n=strlen(a); //计算长度
          	int t=0;
          	int max1,min1,max2,min2,maxn=0,minn=100; //1和2分别为起始位置和结束位置,
          	                                        //带n的计算长度   
          	a[n]=' '; //在最后一个单词后加空格,否则单词无法计算                                                                   
          	for(int i=0; i<=n; i++) //枚举
          	{
          		if(a[i]!=' ' && a[i]!=',') //如果是单词
          			t++; //计数器加一
          		else if(t>0) //否则
          		{
          			if(t>maxn) //如果大于最大
          			{
          				maxn=t; //计算长度
          				max1=i-t; //起始位置
          				max2=i-1; //结束位置
          			}
          			if(t<minn) //如果小于最小
          			{
          				minn=t; //同上
          				min1=i-t;
          				min2=i-1;
          			}
          			t=0; //计数器归0
          		} 
          	}
          	for(int i=max1; i<=max2; i++) //输出最大和最小
          		cout<<a[i];
          	cout<<endl;
          	for(int i=min1; i<=min2; i++)
          		cout<<a[i];
          	return 0; //养成好习惯
          }
          
          
          • 0
            @ 2023-10-15 10:56:53

            #include<bits/stdc++.h> using namespace std; int main() { char a[20000]; gets(a); //输入数组 int n=strlen(a); //计算长度 int t=0; int max1,min1,max2,min2,maxn=0,minn=100; //1和2分别为起始位置和结束位置, //带n的计算长度 a[n]=' '; //在最后一个单词后加空格,否则单词无法计算 for(int i=0; i<=n; i++) //枚举 { if(a[i]!=' ' && a[i]!=',') //如果是单词 t++; //计数器加一 else if(t>0) //否则 { if(t>maxn) //如果大于最大 { maxn=t; //计算长度 max1=i-t; //起始位置 max2=i-1; //结束位置 } if(t<minn) //如果小于最小 { minn=t; //同上 min1=i-t; min2=i-1; } t=0; //计数器归0 } } for(int i=max1; i<=max2; i++) //输出最大和最小 cout<<a[i]; cout<<endl; for(int i=min1; i<=min2; i++) cout<<a[i]; return 0; //养成好习惯 }

            • 0
              @ 2023-10-10 19:15:19
              using namespace std;
              string a;
              int maxx1,minx1,maxx2,minx2;
              int main(){
              	int maxn=0,minn;
              	getline(cin,a);
              	minn=a.size();
              	int ans=0;
              	int i=0;
              	for(;i<a.size();i++){
              		if(a[i]==' ' || a[i]==','){
              			if(ans>maxn){
              				maxx1=i-ans;
              				maxx2=ans;
              				maxn=ans;
              			}
              			if(ans<minn){
              				minx1=i-ans;
              				minx2=ans;
              				minn=ans;
              			}
              			ans=0;
              		}
              		else ans++;
              		
              	}
              	if(ans>maxn){
              		maxx1=i-ans;
              		maxx2=ans;
              		maxn=ans;
              	}
              	if(ans<minn){
              		minx1=i-ans;
              		minx2=ans;
              		maxn=ans;
              	}
              	for(int i=maxx1;i<maxx1+maxx2;i++){
              		cout<<a[i];
              	}
              	cout<<endl;
              	for(int i=minx1;i<minx1+minx2;i++){
              		cout<<a[i];
              	}
              	return 0;
              }
              
              • 0
                @ 2023-10-8 14:00:57
                #include <bits/stdc++.h>
                using namespace std;
                string s;
                int mx,n,mxe,mne;	// mx 是最大长度, n 是当前单词长度, mxe 和 mne 是最长和最短单词的结束位置
                int main(int argc, char **argv){
                	int mn = 101;	// mn 是最短长度
                	getline(cin,s);
                	for(int i = 0;s[i];i++){
                		if (s[i] == ' ' || s[i] == ','){
                			if (n > mx){
                				mx = n;
                				mxe = i;
                			}
                			if (n < mn){
                				mn = n;
                				mne = i;
                			}
                			n = 0;
                		}else{
                			n++;
                		}
                	}
                	for (int i = mxe - mx;i < mxe;i++){
                		cout << s[i];
                	}
                	cout << "\n";
                	for (int i = mne - mn;i < mne;i++){
                		cout << s[i];
                	}
                	return 0;
                }
                
                • 0
                  @ 2023-10-4 8:43:28
                  ```
                  #include <iostream>
                  #include <string>
                  using namespace std;
                  string a;
                  int sum=0,maxx=-100,maxb,minb,minn=1000000;
                  int main(){
                  	getline(cin,a);//带空格输入
                  	for(int i=0;i<a.length();i++){
                  		if(a[i]==' '||a[i]==','||a[i]=='.'){//如果发现标点符号和空格,代表单词结束
                  			if(maxx<sum){//如果单词长度突破目前发现的最长长度
                  				maxb=i;//把最长单词的结束点更新,i就是结束点
                  				maxx=sum;//把最长单词的长度更新
                  			}
                  			if(minn>sum){//如果单词长度低于目前发现的最短长度
                  				minb=i;//更新最短单词结束点
                  				minn=sum;//更新最短长度
                  			}
                  			sum=0;//sum清空,以便下次操作
                  		}else{
                  			sum++;//如果是字母,长度加一
                  		}
                  	}
                  	for(int i=maxb-maxx/*从开始位置开始输出*/;i<maxb/*到结束位置结束*/;i++){
                  		cout<<a[i];
                  	}
                  	cout<<endl;
                  	for(int i=minb-minn;i<minb;i++){//最短单词同理
                  		cout<<a[i];
                  	}
                  	return 0;
                  }
                  
                  • 1

                  Information

                  ID
                  629
                  Time
                  1000ms
                  Memory
                  256MiB
                  Difficulty
                  6
                  Tags
                  # Submissions
                  119
                  Accepted
                  39
                  Uploaded By