-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix-string-case.js
More file actions
31 lines (26 loc) · 1003 Bytes
/
fix-string-case.js
File metadata and controls
31 lines (26 loc) · 1003 Bytes
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
// 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.
function solve(s) {
let capitalCount = 0
for (let i = 0; i < s.length; i++) {
if (s[i] === s[i].toUpperCase()) {
capitalCount++;
}
}
const halfLength = s.length / 2;
if (capitalCount > halfLength) {
return s.toUpperCase();
} else {
return s.toLowerCase();
}
}
result = solve('CODe');
console.log(result);