You are viewing a single comment's thread. Return to all comments →
Here's a more in-depth explanation of the counting solution.
The problem asks you to divide a string into two mirrored parts. For example:
A letter in the string can appear an odd or an even number of times. Let's consider what happens when the number of letters that appears an odd number of times varies.
0 "odd letters":
Each letter on the left side must have a pair on the right side. If the number is even, it means we can definitely divide this string into two mirrored parts, as each letter does have a pair.
1 "odd letters":
When we have 1 "odd" letter, the string can only be a palindrome if the letter without a pair is in the middle, between the two mirrored parts. Therefore, we can make a palindrome in this case.
2 or more "odd letters":
In the case of one "odd" letter, we can put the unpaired one in the middle. But we only have one middle, so if the number of "odd" letters is any higher than 1, there is no possible position we can put the second "odd" letter and still have the string be a palindrome.
You guys got way too much free time :/
So free that we've decided to become software engineers