Problem · String
Replace '?' to Avoid Adjacent Duplicates
Learn this problemProblem statement
You are given a string s consisting of lowercase English letters
('a' to 'z') and the character '?'.
Each '?' can be replaced with any lowercase English letter.
Return the total number of ways to replace all '?' such that the final
string has no two adjacent identical characters.
Since the answer may be large, return it modulo 10^9 + 7.
Function
replaceQuestionMarkToAvoidAdjacentDuplicates(s: String) → intExamples
Example 1
s = "??"return = 650- First character: 26 choices
- Second character: 25 choices (cannot equal the previous character)
- Total ways = 26 * 25 = 650
Constraints
1 <= s.length <= 10^5s[i]is a lowercase English letter or'?'