Problem · String

Alphabetically Smallest Palindrome

Learn this problem
MediumMicrosoftNEW GRADINTERNOA
See Microsoft hiring insights

Problem statement

A palindrome reads the same from either direction; for example, ada is a palindrome. You are given a string s of lowercase English letters.

Change the fewest letters possible so that the characters of s can be rearranged to form a palindrome. If multiple palindromes require the same minimum number of changes, return the alphabetically smallest one.

Function

makeAlphabeticallySmallestPalindrome(s: String) → String

Examples

Example 1

s = "azzzbbb"return = "abzbzba"

Optimally, change one z to a to get aazzbbb. These letters can be rearranged to form abzbzba, which is the alphabetically smallest palindrome possible after one change.

Constraints

  • 1 ≤ s.length ≤ 3 × 10^5
  • s consists of lowercase English letters only.

More Microsoft problems

drafts saved locally
public String makeAlphabeticallySmallestPalindrome(String s) {
  // write your code here
}
s"azzzbbb"
expected"abzbzba"
checking account