Clear Python 3 solution faster than 91% with explanation
\nfrom collections import Counter\n\nclass Solution:\n    def canConstruct(self, s: str, k: int) -> bool:\n        if k > len(s):\n            return False\n   
```\nfrom collections import Counter\n\nclass Solution:\n    def canConstruct(self, s: str, k: int) -> bool:\n        if k > len(s):\n            return False\n        h = Counter(s)\n        countOdd = 0\n        for value in h.values():\n            if value % 2:\n                countOdd += 1\n        if countOdd > k:\n            return False\n        return True\n```\nThe solution is based on the understanding that a string can be a palindrome only if it has **at most 1 character** whose frequency is odd. So if the number of characters having an odd frequency is greater than the number of palindromes we need to form, then naturally it\'s impossible to do so.
['Python', 'Python3']