要求:
给你一个仅由字符 '0' 和 '1' 组成的字符串 s 。一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0' 。
交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。例如,字符串 "010" 是交替字符串,而字符串 "0100" 不是。
返回使 s 变成 交替字符串 所需的 最少 操作数
《----来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-changes-to-make-alternating-binary-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。-- 》
思路:
交替字符串,A:10101010 或 B:01010101
你想把一个字符串111101变成 101010 需要改变改变4个数字,那么变成010101就只需要两次,也就是6-4次
那么我们只需要把字符串变成A或者B的一种即可,另一种就是 (数字总数 - 字符串变成A的变动个数)
还有一个知识点:
数字,字符串,字符,在ascii码表上是不一样的
s[i] = '0' = 48
代码如下:
int minOperations(char * s){ int nub = 0; int i =0; for(i =0;s[i]!= '