File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change 1+ // https://leetcode.com/problems/construct-k-palindrome-strings/description/
2+
3+ package main
4+
5+ import "fmt"
6+
7+ func canConstruct (s string , k int ) bool {
8+ // count freq
9+ freq := make (map [rune ]int )
10+ for _ , c := range s {
11+ freq [c ]++
12+ }
13+
14+ // count odd freq
15+ odd := 0
16+ for _ , v := range freq {
17+ if v % 2 != 0 {
18+ odd ++
19+ }
20+ }
21+
22+ // check conditions
23+ return k <= len (s ) && odd <= k
24+ }
25+
26+ func canConstruct2 (s string , k int ) bool {
27+ if len (s ) < k {
28+ return false
29+ }
30+
31+ // count freq
32+ freq := make ([]int , 26 )
33+ for _ , c := range s {
34+ freq [c - 'a' ]++
35+ }
36+
37+ // count odd freq
38+ odd := 0
39+ for _ , v := range freq {
40+ if v % 2 == 1 {
41+ odd ++
42+ }
43+ }
44+
45+ if odd > k {
46+ return false
47+ }
48+
49+ return true
50+ }
51+
52+ func main () {
53+ s := "annabelle"
54+ k := 2
55+
56+ fmt .Println (canConstruct2 (s , k ))
57+ }
You can’t perform that action at this time.
0 commit comments