-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.go
36 lines (29 loc) · 976 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main
import "strings"
/*
In this Kata, you will be given a string that may have mixed uppercase and lowercase letters and your task is to convert
that string to either lowercase only or uppercase only based on:
make as few changes as possible.
if the string contains equal number of uppercase and lowercase letters, convert the string to lowercase.
For example:
solve("coDe") = "code". Lowercase characters > uppercase. Change only the "D" to lowercase.
solve("CODe") = "CODE". Uppercase characters > lowecase. Change only the "e" to uppercase.
solve("coDE") = "code". Upper == lowercase. Change all to lowercase.
More examples in test cases. Good luck!
*/
func isLower(char int32) bool {
return 'a' <= char && char <= 'z'
}
func solve(str string) string {
countLower := 0
for _, char := range str {
if isLower(char) {
countLower++
}
}
if countLower < len(str)-countLower {
return strings.ToUpper(str)
} else {
return strings.ToLower(str)
}
}