1149:最长单词2
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 19284 通过数: 10603
【题目描述】
一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。
【输入】
一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。
【输出】
该句子中最长的单词。如果多于一个,则输出第一个。
【输入样例】
I am a student of Peking University.
【输出样例】
University
【AC代码】
#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;
}