[LeetCode] 1576. 替换所有的问号

116 阅读1分钟

1576. 替换所有的问号

解题思路

根据题意.我们要找出所有问号所在的下标 针对每个下标i,我们可以从 a 开始进行替换,如若不合规则继续 b, c(因为不允许连续重复,三个字符够用了) 因为不允许连续重复,我们需要比对 i-1i+1的字符是否与i替换后的相等.

代码

var modifyString = function (s) {
  const arr = [...s]
  for (let i = 0, len = arr.length; i < len; i++) {
    if (arr[i] !== '?') continue
    for (const c of ['a', 'b', 'c']) {
      if (arr[i - 1] === c || arr[i + 1] === c) continue
      arr[i] = c
      break
    }
  }
  return arr.join('')
}