红和绿

牛牛有一些排成一行的正方形。每个正方形已经被染成红色或者绿色。牛牛现在可以选择任意一个正方形然后用这两种颜色的任意一种进行染色,这个正方形的颜色将会被覆盖。

牛牛的目标是在完成染色之后,每个红色R都比每个绿色G距离最左侧近。牛牛想知道他最少需要涂染几个正方形。

如样例所示: s = RGRGR
我们涂染之后变成RRRGG满足要求了,涂染的个数为2,没有比这个更好的涂染方案。

输入描述:

输入包括一个字符串s,字符串s长度length(1 ≤ length ≤ 50),其中只包括’R’或者’G’,分别表示红色和绿色。

输出描述:

输出一个整数,表示牛牛最少需要涂染的正方形数量

输入例子1:
RGRGR

输出例子1:
2

思路:将每一个元素看做中点,左边的涂成R,右边的涂成G,找到涂染个数,在多个涂染个数中找到最小的那个,输出。

function small(s) {
    const str = s
    let res = 1000
    for (let i = 0; i < str.length; i++) {
      let count = 0
      for (let j = 0; j < i; j++) {
        if (str[j] !== 'R') count++
      }
      for (let j = i; j < str.length; j++) {
        if (str[j] !== 'G') count++
      }
      res = res < count ? res : count
    }
    console.log(res)
  }
  small('RRRGGGGG')

你可能感兴趣的:(红和绿)