[JS] O(n) solution with comments
\nvar canConstruct = function(s, k) {\n\t// if string length is less than k, we cannot form k palindromes from the string, so return false\n    if(k > s.length)
```\nvar canConstruct = function(s, k) {\n\t// if string length is less than k, we cannot form k palindromes from the string, so return false\n    if(k > s.length) {\n        return false;\n    }\n\t// created a map to keep count of each letter in the string\n    const map = new Map();    // O(26)\n    for(let i = 0; i < s.length; ++i) {    // O(n)\n        map.set(s[i], map.has(s[i]) ? map.get(s[i]) + 1 : 1);\n    }\n\t// check how many letters have odd count\n    let oddCount = 0;\n    map.forEach((value, key) => {    // O(26)\n        if(value % 2 !== 0) {\n            ++oddCount;\n        }\n    })\n\t// if letters with odd count are greater than k, that means more than k palindromes need to be formed to\n\t// make palindromes from the string where all the letters are utilised, so return false\n\t// palindrome can be of 2 form: `aaaaa` and `aabaa`, one letter can have odd and even occurences, but \n\t// there will be at least x palindromes if x letters are there with odd number of frequency\n    if(oddCount > k) {\n        return false;\n    }\n\t// since the previous conditions do not hold, we can make k palindromes from the string, so return true\n    return true;\n};\n```\nTime Complexity = O(n)\nSpace Complexity = O(26) ~ O(1)
['JavaScript']