-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfix_string_case.js
28 lines (25 loc) · 1.03 KB
/
fix_string_case.js
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
// Description:
// 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.
// SOLUTION:
function solve(s) {
let countUpper = 0;
let countLower = 0;
for (let i = 0; i < s.length; i++) {
if (s[i] !== s[i].toLowerCase()) {
countUpper++;
} else {
countLower++;
}
}
if (countUpper > countLower) {
return s.toUpperCase();
} else if (countUpper < countLower || countUpper === countLower) {
return s.toLowerCase();
}
}