Longest Palindrome
Explore how to use hash maps to compute the length of the longest palindrome from a case-sensitive string. Learn to handle character counts efficiently, understand problem constraints, and implement an optimal O(n) time solution in C++.
We'll cover the following...
Statement
Given a string s that only contains alphabets, return the length of the longest palindrome that may be composed using those letters.
Note: Letters are case-sensitive. Hence, combinations such as “
Aa” are not considered palindromes.
Constraints:
s.lengthsconsists of lowercase and/or uppercase English letters only.
Examples
Understand the problem
Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:
Longest Palindrome
(Select all that apply.) Which options are valid palindromes that can be made using the letters in the string given below?
string = “abbjhhrrssS” Multi-select
“rhbsSsbhr”
"bhrsjsjsrhb”
“bhrsSsrhb”
“SsrhbjbhrsS”
Figure it out!
We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.
Note: As an additional challenge, we have intentionally hidden the solution to this puzzle.
Try it yourself
Implement your solution in the following coding playground.
We have left the solution to this challenge as an exercise for you. The optimal solution to this problem runs in O(n) time and takes O(n) space. You may try to translate the logic of the solved puzzle into a coded solution.
int LongestPalindrome(std::string s){// Replace this placeholder return statement with your codereturn -1;}