题解
【基础】求英文句子中的最长单词
1 条题解
-
0
解题思路
逐字读取句子,遇到空格结束当前单词,并保留最先出现的最长单词。
参考代码
#include <iostream> #include <string> using namespace std; int main() { string s, w, ans; getline(cin, s); for (int i = 0; i <= (int)s.size(); i++) { if (i < (int)s.size() && s[i] != ' ') { // 把当前单词的字母逐个放进w中。 w += s[i]; } else { // 单词结束时,如果更长,就更新答案。 if (w.size() > ans.size()) ans = w; w = ""; } } // 使用大于而不是大于等于,能保留最先出现的最长单词。 cout << ans; return 0; }复杂度分析
代码只使用了简单变量、循环和字符串。设输入长度为 n,时间复杂度为 O(n^2)(若有嵌套枚举则按实际循环计算),额外空间复杂度为 O(n)。
- 1