7 solutions
-
2
#include <iostream> using namespace std; string n,ans; int s[505],sum,x,ma; int main(){ getline(cin,n); long t=n.size(); for(int i=0;i<t;i++){ if(n[i]!=' ') s[x]++; else x++; } for(int i=0;i<x;i++) ma=max(ma,s[i]); for(int i=0;i<t;i++){ if(n[i]!=' ') sum++,ans+=n[i]; else if(sum==ma){ cout<<ans; break; } else sum=0,ans=""; } return 0; }
-
1
按最长最短单词改一下就行了
#include<iostream> #include<string> using namespace std; int main() { string a; getline(cin,a);//输入 a+=' '; string s="",b=""; for(int i=0;i<a.length();i++) { if(a[i]==' ' || a[i]=='.')//当为空格或句号时 { if(b.length()>s.length())//是不是最长单词 { s=b;//记录 } b="";//重置 } else b+=a[i];//连接单词 } cout<<s;//输出 return 0;//完结散花! }
-
1
#include<iostream> using namespace std; string n,ans; int s[505]={0},sum=0; int x=0; int ma=0; int main(){ getline(cin,n); long t=n.size(); for(int i=0;i<t;i++){ if(n[i]!=' ') s[x]++; else if(n[i]==' ') x++; } for(int i=0;i<x;i++) ma=max(ma,s[i]); for(int i=0;i<t;i++){ if(n[i]!=' '){ sum++; ans+=n[i]; }else if(sum==ma){ cout<<ans; break; }else{ sum=0; ans=""; } } return 0; }
最笨的方法
-
0
//x.length()的意思是x这个字符串的长度 //例:x = "Hello", x.length() = 5 //用char空格不能被接收到 #include<bits/stdc++.h> using namespace std; int main() { string a; getline(cin,a);//输入 a+=' ';//不然后面就不能判定为一个词 string max="";//最大 string b="";//临时 for(int i = 0;i < a.length();i++)//i不能等于1 { if(a[i]==' ' || a[i]=='.')//当为空格或句号时 { if(b.length()>max.length())//如果比原最大还大 { max=b;//记录 } b="";//重置 //有空格和句号一定要重置 } else//不然 { b+=a[i];//连接单词 } } cout << max;//输出 return 0;//完结散花! }
-
0
#include<bits/stdc++.h> using namespace std; int ml,mp,sum; string s; int main() { getline(cin,s); for(int i=0;i<s.size();i++)//遍历 { if(s[i]!=' '&&s[i]!='.')sum++;//如果s[i]不是空格或句号计数器就+1 else if(sum>0)//如果s[i]是空格或句号并且前面有字符 { if(sum>ml)//如果当前单词长度大于最长单词长度 { ml=sum;//最长单词长度变为当前单词长度 mp=i-sum;//最长单词位置变成当前单词位置 } sum=0;//计数器归0 } } for(int i=mp;i<=mp+ml-1;i++)cout<<s[i]; return 0; }
-
0
using namespace std; string a; int maxx1,maxx2; int main(){ int maxn=0; getline(cin,a); int ans=0; int i=0; for(;i<a.size();i++){ if(a[i]==' ' || a[i]==',' || a[i]=='.'){ if(ans>maxn){ maxx1=i-ans; maxx2=ans; maxn=ans; } ans=0; } else ans++; } for(int i=maxx1;i<maxx1+maxx2;i++){ cout<<a[i]; } return 0; }
一点不短小精悍
-
0
#include <bits/stdc++.h> using namespace std; string s; int mx,n,mxe; // mx 是最大长度, n 是当前单词长度, mxe 是最长单词的结束位置 int main(int argc, char **argv){ getline(cin,s); for(int i = 0;s[i];i++){ if (s[i] == ' '){ if (n > mx){ mx = n; mxe = i; } n = 0; }else{ n++; } } for (int i = mxe - mx;i < mxe;i++){ cout << s[i]; } return 0; }
说真的,这个吧 A1143 改一下就行了
还是大石头一个
- 1
Information
- ID
- 635
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 4
- Tags
- # Submissions
- 88
- Accepted
- 38
- Uploaded By