1 条题解
-
0
📝 题目大意
给定两个由小写字母组成的字符串 和 ,判断 是否是 的连续子串。
💡 解题思路
- 题目分析:,数据范围极小,可以直接使用字符串库函数判断子串关系。
- 算法推导:
- 使用 C++ 的
string::find()方法,它在 中查找 的首次出现位置。 - 若查找成功,
find()返回 在 中的起始下标(一个 的整数);若查找失败,返回string::npos(一个很大的值,通常为 )。 - 因此只需判断返回值是否小于一个足够大的数(如 ),即可区分"找到"与"未找到"。
- 使用 C++ 的
- 边界与细节:
- 时显然为子串,答案为
Yes(见样例 4)。 - 时必然不是子串,
find()会返回npos,输出No(见样例 3)。 - 注意区分大小写:题目保证全为小写字母,无需额外处理。
- 时显然为子串,答案为
⏱️ 复杂度分析
- 时间复杂度:,
string::find()在最坏情况下的复杂度。 - 空间复杂度:,用于存储两个输入字符串。
💻 标准代码 (C++)
#include<bits/stdc++.h> using namespace std; int main(){ string s, x; cin >> s >> x; // 读入字符串 S 和 T // find() 若找到子串则返回起始下标(≥0),否则返回 string::npos(一个极大值) // 用 < 10000000 来判断是否找到,避免直接使用 string::npos 常量 if (s.find(x) < 10000000) cout << "Yes" << endl; else cout << "No" << endl; return 0; }
- 1
信息
- ID
- 656
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者