Problem · String

Replace '?' to Avoid Adjacent Duplicates

Learn this problem
MediumSalesforce logoSalesforceOA
See Salesforce hiring insights

Problem 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) → int

Examples

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
checking account