求一行句子中最长的单词,如果出现并列情况,输出字典序最小的单词,例如如果above和alive同时为最长单词,则输出above
行1:一行空格分隔的字母,此行最少1个字符(且非空格)最多1000个字符,单词最长16个字符
行1:最长的单词
可见格式 | 带空格和换行符的格式 | 带空格和换行符的格式说明 |
I am a student
I[SP]am[SP]a[SP]student[EOL] [EOF]
输入数据举例中,[sp]代表此处有一个空格,[EOL]、[EOF]代表回车
Original | Transformed | 带空格和换行符的格式说明 |
student
student[EOL] [EOF]
输出数据举例中,[sp]代表此处输出一个空格,[EOL]代表此处输出换行符\n,[EOF]代表数据输出结束,可以不用理会
无
无
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
bool cmp(string a,string b){
int m=a.length();
int n=b.length();
if(m!=n) return m<n;
else return a>b;
}
vector<string> dict;
int main(){
string s,buf;
while(getline(cin,s)){
stringstream ss(s);
while(ss>>buf) dict.push_back(buf);
int n=dict.size();
sort(dict.begin(),dict.end(),cmp);
cout<<dict[n-1]<<"\n";
dict.clear();
}
return 0;
}