8 solutions
-
3
#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
#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
#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
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
#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
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
#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
``` #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