FastPrepBreak a Palindrome

Break a Palindrome

NVIDIA logoNVIDIA● MediumOA
Learn

Problem statement

A palindrome reads the same forwards and backwards, like "mom". Modify a palindrome by changing exactly one character to another character within the ASCII range [a-z]. The goal is to ensure the new string fulfills the following criteria:

  • It is not a palindrome.
  • It is alphabetically lower than the original palindrome.
  • It is the smallest possible string alphabetically that can be obtained by changing just one character.

Return the new string, or "IMPOSSIBLE" if it is not feasible to create such a string.

Function

breakPalindrome(palindromeStr: String) → String

Complete the function breakPalindrome in the editor with the following parameter(s):

  • string palindromeStr: the input string

Returns string: the resulting string, or IMPOSSIBLE if one cannot be formed

Examples

Example 1

palindromeStr = "aaabbaaa"return = "aaaabaaa"

Possible strings lower alphabetically than 'aaabbaaa' after one change are ['aaaabaaa', 'aaabaaaa']

'aaaabaaa' is not a palindrome and is the lowest string that can be created from palindromeStr.

Constraints

  • 1 ≤ length of palindromeStr ≤ 1000
  • palindromeStr is a palindrome
  • palindromeStr contains only lowercase English letters

More NVIDIA problems

See NVIDIA hiring insights
public String breakPalindrome(String palindromeStr) {
  // write your code here
}
palindromeStr"aaabbaaa"
expected"aaaabaaa"
Checking account…