码迷,mamicode.com
首页 > 移动开发 > 详细

1822. 最小移动次数

时间:2020-05-02 18:38:22      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:number   替换   red   int   ram   span   header   english   输出   

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. 最小移动次数

标签:number   替换   red   int   ram   span   header   english   输出   

原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12818821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!