1149:最长单词2
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。
【输入】
一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。
【输出】
该句子中最长的单词。如果多于一个,则输出第一个。
【输入样例】
I am a student of Peking University.【输出样例】
University
我这程序确实太繁琐复杂了,那么如果有不妥或者有更好的方案劳烦各位指正!
#include<string>
#include<iostream>
using namespace std;
int main(){
string sen;
getline(cin,sen);
int len = sen.length();
string longestWord;
int bigLength = 0;
string word;
word.assign(1,sen[0]);
int length = 1;
for(int i=0;i<len;i++){
if(sen[i+1] != ' ' && sen[i+1] != '.'){
if(sen[i] != ' '){
word += sen[i+1];
length++;
}
continue;
}else{
if(length > bigLength){
longestWord = word;
bigLength = length;
}
length = 1;
if(i+2<len){
word.assign(1,sen[i+2]);
}
}
}
cout<<longestWord<<endl;
return 0;
}