Problem · String

Replace '?' to Avoid Adjacent Duplicates

MediumSalesforceOA
See Salesforce hiring insights

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.

Examples
01 · 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^5
  • s[i] is a lowercase English letter or '?'
More Salesforce problems
drafts saved locally
public int replaceQuestionMarkToAvoidAdjacentDuplicates(String s) {
  // write your code here
}
s"??"
expected650
sign in to submit