AcWing 774. 最长单词
原题链接
中等
作者:
sergey
,
2023-02-09 09:35:22
,
所有人可见
,
阅读 159
#include <iostream>
using namespace std;
int main()
{
string s;
getline (cin, s);
int cnt = 0;
int max = 1;
string b;
string c;
for (int i = 0; i < s.size(); i ++ )
{
if (s[i] != ' ')
{
cnt ++;
if (s[i] != '.') b = b + s[i];
}
else
{
cnt = 0;
b.clear();
}
if (cnt > max && s[i] != '.')
{
c = b;
max = cnt;
}
}
cout << c << endl;
}
简单方法 用cin过滤空格
#include <iostream>
using namespace std;
int main()
{
string s;
int cnt = 0;
string c;
while (cin >> s)
{
if (s[s.size() - 1] == '.') s.pop_back();
if (s.size() > cnt) cnt = s.size(), c = s;
}
cout << c << endl;
return 0;
}
string的最后一个字符可以用s.back();
#include <iostream>
using namespace std;
int main()
{
string s;
int cnt = 0;
string b;
while (cin >> s)
{
if (s.back() == '.') s.pop_back();
if (cnt < s.size()) cnt = s.size(), b = s;
}
cout << b << endl;
return 0;
}