rt,我居然这题都不会。。。~真是个蒟蒻。
求大佬调一下代码(最下面),或者给一下 HACK。
每次英语老师叫我们学英语时,很多同学总会觉得句子越长越南理解。后来,英语老实说:“干脆我们先从最难的学起吧,请同学们把最长的英文句子找出来。”
只有一行字符串,有英文标点符号和英文字母组成,每一句的结束用英语标点 . 来表示。
第一行是输出最长的句子(包括 .),如果有多个最长的句子,则输出最前面的那一句。
第二行输出英文句子的长度。
输入:
We always play together. He is friendly and funny boy. He always helps others.
输出:
He is friendly and funny boy.
29
英文文章长度小于等于 107,最长的句子长度不超过 1000。
首先找标点 .。
如果不是,就累加长度,加入新的字符串。
如果是,先消去句首空格,再打擂台,并初始化。
最后输出。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll i,maxn;
string ans,str,s;
int main(){
getline(cin,s);
for(i=0;i<s.size();i++){
str+=s[i];
if(s[i]=='.'){
ll len=str.size();
while((int)str[0]==32&&len){
str.erase(0,1);
len--;
}
if(len>maxn){
maxn=len;
ans=str;
str="";
}
}
}
cout<<ans<<endl<<maxn<<endl;
return 0;
}