Optimised Odd Balancer | constant space 
IntuitionWe want to check if it's possible to partition the given string into exactly k non-empty substrings such that each substring is a palindrome. This esse
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->
We want to check if it's possible to partition the given string into exactly k non-empty substrings such that each substring is a palindrome. This essentially boils down to counting how many characters have an odd frequency.
# Approach
<!-- Describe your approach to solving the problem. -->
- **Step 1:** Count the frequency of each character in the string.
- **Step 2:** Identify how many characters have an odd frequency. For a palindrome, at most one character can have an odd frequency.
- **Step 3:** If the number of odd-frequency characters is greater than k, it's impossible to form k palindromes. If k exceeds the string's length, it's also impossible.
- **Step 4:** Return true if the conditions are met, otherwise false.

# Complexity
- Time complexity: $$O(n)$$
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity: $$O(1)$$
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```cpp []
class Solution {
public:
    bool canConstruct(string s, int k) {
        vector<int> alpha(26,0);
        for(auto &i: s) alpha[i -'a']++;
        int cnt = 0;
        for(int i = 0; i < 26; i++){
            if(alpha[i] & 1)cnt++;
        }
        if(cnt > k || k > s.length())return false;
        return true;
    }
};
```
['C++']