1 条题解
-
0
📝 题目大意
给定一个长度为 的由
0和1组成的字符串 ,判断 的所有偶数位(第 位)是否全为0。若是则输出Yes,否则输出No。💡 解题思路
- 题目分析:字符串长度固定为 ,数据量极小。核心任务就是检查 中下标为 (即 C++ 中 起始的索引 )的字符是否全部为
'0'。 - 算法推导:在 起始的字符串中,偶数位对应索引 (即奇数索引)。用一个循环遍历这些位置:
for (int i = 1; i < 16; i += 2)。若发现s[i] == '1',直接输出"No"并提前结束程序(return 0);若循环结束仍未发现'1',则输出"Yes"。 - 边界与细节:注意字符串下标从 开始,题目中的"第 个字符"是 起始的。另外要注意,一旦找到不符合条件的字符就立即输出
No并退出,不要继续遍历,这样可以避免多余的工作。位置 不在检查范围内(题目要求从 开始),所以循环从 起步。
⏱️ 复杂度分析
- 时间复杂度:——字符串长度固定为 ,最多检查 个位置。
- 空间复杂度:——仅使用一个长度为 的字符串变量。
💻 标准代码 (C++)
#include <iostream> #include <string> using namespace std; int main() { string s; cin >> s; // 读取长度为 16 的二进制字符串 for (int i = 1; i < 16; i += 2) { // 遍历偶数位(1 起始的第 2,4,...,16 位,对应 0 起始的索引 1,3,...,15) if (s[i] == '1') { // 若某个偶数位为 '1',则不满足条件 cout << "No" << endl; return 0; // 提前结束程序 } } cout << "Yes" << endl; // 所有偶数位均为 '0' return 0; } - 题目分析:字符串长度固定为 ,数据量极小。核心任务就是检查 中下标为 (即 C++ 中 起始的索引 )的字符是否全部为
- 1
信息
- ID
- 755
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者