1 条题解
-
0
📝 题目大意
给定一个长度为 的小写字母字符串 ,判断是否存在相邻的两个字符恰好是
a和b(顺序不限,即ab或ba均可)。💡 解题思路
- 题目分析:,数据规模极小,直接暴力枚举即可。关键点是相邻字符对中
a和b的顺序可以是ab也可以是ba。 - 算法推导:遍历字符串 的前 个位置,检查 和 是否构成
ab或ba。一旦找到,立即标记found = true并跳出循环;若遍历结束仍未找到,则输出No。 - 边界与细节:,所以 ,循环至少执行一次,不会出现越界。注意判断条件中
||两边的括号不可省略,否则运算符优先级会导致逻辑错误。
⏱️ 复杂度分析
- 时间复杂度:,只需遍历字符串一次。
- 空间复杂度:,仅使用常数个额外变量。
💻 标准代码 (C++)
#include <iostream> #include <string> using namespace std; int main() { int N; string S; cin >> N >> S; bool found = false; // 标记是否找到符合条件的相邻字符对 for (int i = 0; i < N - 1; i++) { // 遍历前 N-1 个位置,检查 S[i] 与 S[i+1] if ((S[i] == 'a' && S[i + 1] == 'b') || (S[i] == 'b' && S[i + 1] == 'a')) { found = true; // 找到 ab 或 ba,标记并退出 break; } } cout << (found ? "Yes" : "No") << endl; // 根据标记输出结果 return 0; } - 题目分析:,数据规模极小,直接暴力枚举即可。关键点是相邻字符对中
- 1
信息
- ID
- 746
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者