1822. 最小移动次数

Posted yunxintryyoubest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1822. 最小移动次数相关的知识,希望对你有一定的参考价值。

1822. 最小移动次数

中文English

给定由N个字母 ‘a‘ 和/或 ‘b‘ 组成的字符串S。 在一次操作中,可以将一个字母替换为另一个字母(‘a‘ 替换为 ‘b‘ 或 ‘b‘ 替换为 ‘a‘)。 返回得到不包含三个连续相同字母的字符串所需的最小操作次数。

样例

示例1:
输入:
S = "baaaaa"
输出: 1
解释:将字符串变成: "baabaa", 这样一次操作就可以使得字符串S没有三个相同的连续字母。
示例2:
输入:
S = "baaabbaabbba"
输出: 2
解释:将字符串变成: "bbaabbaabbaa", 这样两次次操作就可以使得字符串S没有三个相同的连续字母。
示例3:
输入:
S="baabab"
输出: 0

注意事项

  • N 是一个整数,范围是: [0, 2000000]
  • 字符串S仅仅由字母 ‘a‘ 和/或 ‘b‘ 组成
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param S: a string
    @return:  return the minimum number of moves
    """
    ‘‘‘
    大致思路:
    1.初始化count=0,如果当前的字符串连续次数//3 == 0的话,不加,否则count += 连续次数//3,最终返回
    ‘‘‘
    def MinimumMoves(self,S):
        if S == ‘‘:
            return 0
        count = 0 
        n = 1
        p = S[0]
        S = S +  
        for i in range(1,len(S)):
            if p == S[i]:
                n += 1
            else:
                count += n//3
                p = S[i]
                n = 1
        return  count

 

以上是关于1822. 最小移动次数的主要内容,如果未能解决你的问题,请参考以下文章

直接插入排序的比较次数移动次数和赋值次数 最小/最大/平均值

Leetcode 453.最小移动次数使数组元素相等

LeetCode#453 最小移动次数使数组元素相等

453. 最小移动次数使数组元素相等

找到获得“好”字符串的最小移动次数

两个骑士相遇的最小移动次数