1 条题解
-
0
📝 题目大意
给定正整数 ,输出一个由 个
0和 个1组成、且0和1交替排列的字符串。要求以1开头。💡 解题思路
-
题目分析: 的范围很小(),可以直接构造。字符串总长度为 ,以
1开头,交替排列,因此奇数位(第 1, 3, 5, ... 位)为1,偶数位为0。 -
算法推导:
- 总长度
len = 2 * N + 1。 - 遍历
i从0到len - 1:- 若
i为偶数(i % 2 == 0),输出1; - 若
i为奇数,输出0。
- 若
- 这样恰好产生 个
1(偶数索引有 个)和 个0(奇数索引有 个)。
- 总长度
-
边界与细节:
- 时输出
101,正确。 - 输出末尾换行。
- 无需考虑复杂情况,直接按位输出即可。
- 时输出
⏱️ 复杂度分析
- 时间复杂度:,需要输出 个字符。
- 空间复杂度:,仅使用常数级额外空间。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int N; cin >> N; // 总长度 = N个0 + (N+1)个1 = 2N+1 // 以1开头,交替排列:偶数位输出'1',奇数位输出'0' for (int i = 0; i < 2 * N + 1; i++) { if (i % 2 == 0) { cout << '1'; // 第0,2,4,...位 → 1 } else { cout << '0'; // 第1,3,5,...位 → 0 } } cout << endl; return 0; } -
- 1
信息
- ID
- 774
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者