LeetCode每日一题(Minimum Number of Flips to Make the Binary String Alternating)

给定一个二进制字符串s,可以通过两种操作来改变它:删除开头字符并将其添加到末尾,或者选择任意字符并翻转其值。目标是通过类型2操作使s变为交替字符串,即相邻字符不相等。本文介绍如何解决这个问题,并提供了Rust代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

You are given a binary string s. You are allowed to perform two types of operations on the string in any sequence:

Type-1: Remove the character at the start of the string s and append it to the end of the string.
Type-2: Pick any character in s and flip its value, i.e., if its value is ‘0’ it becomes ‘1’ and vice-versa.
Return the minimum number of type-2 operations you need to perform such that s becomes alternating.

The string is called alternating if no two adjacent characters are equal.

For example, the strings “010” and “1010” are alternating, while the string “0100” is not.

Example 1:

Input: s = “111000”
Output: 2
Explanation: Use the first operation two times to make s = “100011”.
Then, use the second operation on the third and sixth elements to make s = “101010”.

Example 2:

Input: s = “010”
Output: 0
Explanation: The string is already alternating.<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值