题目地址:
https://www.acwing.com/problem/content/776/
一个以.
结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。
输入格式:
输入这个简单英文句子,长度不超过
500
500
500。
输出格式:
该句子中最长的单词。如果多于一个,则输出第一个。
代码如下:
#include <iostream>
using namespace std;
int main() {
char ch;
int len = 0, m_len = 0;
string s, res;
while (scanf("%c", &ch), ch != '.') {
if (ch == ' ') {
if (len > m_len) res = s, m_len = len;
s = "", len = 0;
} else {
s += ch;
len++;
}
}
if (len > m_len) res = s;
puts(res.c_str());
return 0;
}
时空复杂度 O ( l s ) O(l_s) O(ls)。