算法提高 最长单词
编写一个函数,输入一行字符,将此字符串中最长的单词输出。
输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。
输入格式:
输入一行字符串
输出格式:
输出最长字符
输入样例:
在这里给出一组输入。例如:
I am a student
输出样例:
在这里给出相应的输出。例如:
student
方法:
这道题的核心在于怎么把每个单词分开,通过sstream字符流可以很方便的把单词分开,分开后就直接对比每个单词的长度即可
代码:
#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int main()
{
string s,t;
getline(cin, s);
stringstream ss(s);
vector<string>arr;
while (ss >> t)
{
arr.push_back(t);
}
t = arr[0];
for (int i = 1; i < arr.size(); i++)
{
if (arr[i].length()>t.length())
{
t = arr[i];
}
}
cout << t << endl;
return 0;
}