检查是否可以使用 Python 将二进制字符串重新排列成交替的 0 和 1
假设我们有一个长度为 2 或以上的二进制字符串 s。我们必须检查是否可以重新排列 s,使得 0 和 1 交替出现。
因此,如果输入类似于 s = "1000111",则输出将为 True,因为我们可以从 s 中形成 "1010101"。
为了解决这个问题,我们将遵循以下步骤:
- one_count := 二进制字符串 s 中 1 的数量
- zero_count := 二进制字符串 s 中 0 的数量
- 如果 s 的大小为偶数,则
- 当 one_count 等于 zero_count 时返回 true,否则返回 false
- 当 |one_count - zero_count| 等于 1 时返回 true,否则返回 false
示例
让我们看看下面的实现以获得更好的理解:
def solve(s):
one_count = s.count('1')
zero_count = s.count('0')
if len(s) % 2 == 0 :
return (one_count == zero_count)
return abs(one_count - zero_count) == 1
s = "1000111"
print(solve(s))输入
"1000111"
输出
True
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP