https://leetcode.com/problems/replace-all-s-to-avoid-consecutive-repeating-characters/description/ Easy

Условие

Дана строка s, состоящая из строчных букв английского алфавита и символов ?. Необходимо заменить все символы ? на строчные буквы так, чтобы в полученной строке не было двух одинаковых соседних символов. Гарантируется, что решение всегда существует.

Решение

class Solution {
    fun modifyString(s: String): String {
        val arr = s.toCharArray()
        val n = arr.size
        for (i in arr.indices) {
            if (arr[i] == '?') {
                for (c in 'a'..'z') {
                    if ((i == 0 || arr[i - 1] != c) &&
                        (i == n - 1 || arr[i + 1] != c)) {
                        arr[i] = c
                        break
                    }
                }
            }
        }
        return String(arr)
    }
}