1 条题解
-
0
📝 题目大意
给定 个由小写英文字母组成的字符串,判断其中是否存在任意一个字符串与
and、not、that、the、you这五个单词之一完全相同。若存在则输出Yes,否则输出No。💡 解题思路
- 题目分析:,每个字符串长度 ,数据规模极小,无需考虑复杂算法。问题本质是判断给定集合与目标集合是否有交集。
- 算法推导:逐个读入字符串 ,将其与五个目标单词 (
and、not、that、the、you) 逐一比较。一旦匹配成功,直接输出Yes并结束程序(return 0提前退出)。若遍历完所有 个字符串仍未匹配,则输出No。 - 边界与细节:
- 注意大小写:题目保证输入仅含小写字母,目标单词也是小写,直接
==比较即可。 - 一旦找到匹配即可立即输出并退出,无需继续处理剩余输入,可节省时间。
- 不要忘记最后输出
No的情况(所有字符串都不匹配)。
- 注意大小写:题目保证输入仅含小写字母,目标单词也是小写,直接
⏱️ 复杂度分析
- 时间复杂度:,其中 ,,实际运行时间可忽略不计。
- 空间复杂度:,存储 个字符串。实际上可以优化为 (边读边判断),但 很小,无必要。
💻 标准代码 (C++)
#include <bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; // 读入字符串个数 vector<string>w(n); // 存储所有字符串 for(int i=0; n>i; i++){ cin >> w[i]; // 检查当前字符串是否为五个目标单词之一 if(w[i]=="and"|| w[i]=="not" || w[i]=="that" || w[i]=="the" || w[i]=="you"){ cout << "Yes"<< endl; // 匹配成功,输出 Yes return 0; // 提前结束程序 } } cout << "No" << endl; // 遍历完所有字符串仍未匹配,输出 No }
- 1
信息
- ID
- 693
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者