字串

Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu
问题描述


对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100


请按从小到大的顺序输出这32种01串。


输入格式
本试题没有输入。


输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
“连续字串”通常指的是在一个字符中**连续的一段字符**,也称为“子(substring)”。与“子序列(subsequence)”不同,子要求字符在原字符中是**连续相邻**的。 例如,对于字符 `"hello"`: - 有效的连续子有:`"h"`, `"he"`, `"hel"`, `"hell"`, `"hello"`, `"e"`, `"el"`, ..., `"o"` - 非连续的如 `"hlo"` 就不是子,但可以是子序列 --- ### ✅ 获取一个字符的所有连续子(Python 示例) ```python def get_all_substrings(s): substrings = [] n = len(s) for i in range(n): # 起始置 for j in range(i + 1, n + 1): # 结束置(j 是切片右边界,不包含) substrings.append(s[i:j]) return substrings # 示例 s = "abc" result = get_all_substrings(s) print(result) ``` 输出: ``` ['a', 'ab', 'abc', 'b', 'bc', 'c'] ``` --- ### 🔍 代码解释: - 外层循环 `i` 表示子的起始索引。 - 内层循环 `j` 表示子的结束索引(切片是左闭右开,所以是 `i+1` 到 `n+1`)。 - `s[i:j]` 提取从 `i` 到 `j-1` 的连续字符。 - 总共有 $ \frac{n(n+1)}{2} $ 个非空连续子(其中 `n` 是字符长度)。 --- ### 🛠️ 常见相关问题场景: 1. **最长回文子** 2. **最长无重复字符的子(滑动窗口)** 3. **最小/最大和子(适用于数字数组,即最大子数组和)** 4. **判断某个子是否存在于主中** 比如使用滑动窗口找**最长无重复字符的子长度**: ```python def longest_substring_without_repeating(s): char_set = set() left = 0 max_len = 0 for right in range(len(s)): while s[right] in char_set: char_set.remove(s[left]) left += 1 char_set.add(s[right]) max_len = max(max_len, right - left + 1) return max_len # 示例 print(longest_substring_without_repeating("abcabcbb")) # 输出: 3 ("abc") ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值