Merging Palindromes
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) → StringExamples
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.