生成交替二进制字符串的最少操作数

生成交替二进制字符串的最少操作数

给你一个仅由字符 ‘0’ 和 ‘1’ 组成的字符串 s 。
一步操作中,你可以将任一 ‘0’ 变成 ‘1’ ,或者将 ‘1’ 变成 ‘0’ 。

交替字符串 定义为:
如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。
例如,字符串 “010” 是交替字符串,而字符串 “0100” 不是。
返回使 s 变成 交替字符串 所需的 最少 操作数。
力扣第228场周赛
示例:

输入:s = “0100”
输出:1
解释:如果将最后一个字符变为 ‘1’ ,s 就变成 “0101” ,即符合交替字符串定义。

输入:s = “10”
输出:0
解释:s 已经是交替字符串。

输入:s = “1111”
输出:2
解释:需要 2 步操作得到 “0101” 或 “1010” 。

题目所需的字符串最终形式无非就是“010101”或“101010”,因此我们可以分别计算原字符串与最终形式共有多少个不同的数字,得到两个操作数,较小的就是答案。

比较法

注意进行比较,分别记录操作数,返回较小值。

class Solution {
   
   
public:
	int minOperations(string s) {
   
   
		int n = s.length();
		int ans1 = 0;
		int ans2 =
### 二进制编码的概念及其在计算机中的应用 #### 什么是二进制编码? 二进制编码是一种基于二进制系统的数据表示方式,它通过使用仅由 `0` 和 `1` 组成的序列来表示各种形式的信息,包括数字、字符、图像和其他数据类型。这种编码方式能够被计算机硬件直接识别并处理[^2]。 #### 二进制编码如何实现? 为了使计算机能够理解人类输入的数据,所有的信息都需要转换为二进制形式。以下是几个常见的二进制编码实现方法: 1. **数值编码** 数字可以直接用二进制表示。例如,十进制数 `9` 转换为二进制就是 `1001`。对于更大的整数或者浮点数,则会遵循特定的标准(如 IEEE 754 浮点标准)来进行更复杂的编码。 2. **字符编码** 字符串可以通过 ASCII 或 Unicode 编码表映射到对应的二进制值。例如,在 ASCII 中字母 'A' 对应于十进制值 `65`,其二进制表示为 `01000001`[^3]。 3. **布尔逻辑操作** 在底层硬件层面,逻辑门电路执行的是布尔代数运算,这些运算本质上也是基于二进制编码完成的。比如 AND、OR 和 NOT 运算可以用来构建更加复杂的功能模块[^1]。 4. **文件存储与传输** 当涉及到多媒体内容时,图片、音频和视频同样会被分解成一系列比特流保存下来以便后续读取或发送给其他设备解读还原原始资料。 #### 实际案例分析 假设我们要向一台电脑输入一句话 “Hello World!” ,那么每个单独组成该句子里的文字都会依据某种既定规则转变成为固定长度的一组零一组合;最终整个字符串就变成了一连串长长短短交替排列着代表不同含义信号脉冲传递至处理器内部参与计算过程之中去了。 ```python def text_to_binary(text): binary_representation = ''.join(format(ord(char), '08b') for char in text) return binary_representation example_text = "H" binary_result = text_to_binary(example_text) print(binary_result) # 输出结果应该是:01001000 ``` 上述 Python 函数展示了将单个英文字母 H (ASCII 值为 72 即 Decimal 表达下等于 Binary 的 01001000 ) 转化为其对应八位宽幅纯质态表现形态的过程演示片段代码样例。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nepu_bin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值