FastPrepMerging Palindromes

Merging Palindromes

Zscaler logoZscaler● MediumINTERNPHONE SCREEN
Learn

Problem statement

From the letters of first, choose a multiset that can be rearranged into a palindrome. Do the same independently for second. Combine the two chosen multisets and rearrange them into one palindrome.

Return the longest palindrome obtainable this way. If several have maximum length, return the lexicographically smallest.

Function

mergingPalindromes(first: String, second: String) → String

Examples

Example 1

first = "aabbc"second = "ddefefq"return = "abdefcfedba"

Use all available pairs and the smallest usable center. The result has maximum length and is lexicographically smallest among maximum-length results.

Example 2

first = "abc"second = "xyz"return = "a"

No pair is available. Choose the smallest single character as the center.

Constraints

  • 1 <= first.length, second.length <= 200000
  • Both strings contain lowercase English letters only.

More Zscaler problems

See Zscaler hiring insights
public String mergingPalindromes(String first, String second) {
  // write your code here
}
first"aabbc"
second"ddefefq"
expected"abdefcfedba"
Checking account…