From 86fae540ca9b40b8294541593b32600549c5a653 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Fri, 10 Jan 2025 20:31:27 -0500 Subject: 1400. construct k palindrome strings --- construct_k_palindrome_str.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/construct_k_palindrome_str.c b/construct_k_palindrome_str.c index 843ebbb..9dadb08 100644 --- a/construct_k_palindrome_str.c +++ b/construct_k_palindrome_str.c @@ -7,20 +7,14 @@ */ bool canConstruct(char *s, int k) { - int n = strlen(s); - if (n < k) - return 0; - int *c = calloc(26, sizeof(int)); - for (int i = 0; i < n; i++) - c[s[i] - 'a']++; - int odd = 0; + int cnt[26] = {0}, odds = 0; + if (k > strlen(s)) + return false; + for (int i = 0; s[i]; i++) + cnt[s[i] - 'a']++; for (int i = 0; i < 26; i++) - if (c[i] % 2 == 1) - odd++; - free(c); - if (odd > k) - return 0; - return 1; + odds += (cnt[i] % 2); + return k >= odds; } int main() { -- cgit v1.2.3