-
Notifications
You must be signed in to change notification settings - Fork 0
/
determineIfStringHalvesAreAlike.js
59 lines (40 loc) · 1.82 KB
/
determineIfStringHalvesAreAlike.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// LeetCode #1704. Determine if String Halves Are Alike
/* Instructions
You are given a string s of even length. Split this string into two halves of equal lengths, and let a be the first half and b be the second half.
Two strings are alike if they have the same number of vowels ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'). Notice that s contains uppercase and lowercase letters.
Return true if a and b are alike. Otherwise, return false.
Example 1:
Input: s = "book"
Output: true
Explanation: a = "bo" and b = "ok". a has 1 vowel and b has 1 vowel. Therefore, they are alike.
Example 2:
Input: s = "textbook"
Output: false
Explanation: a = "text" and b = "book". a has 1 vowel whereas b has 2. Therefore, they are not alike.
Notice that the vowel o is counted twice.
Constraints:
2 <= s.length <= 1000
s.length is even.
s consists of uppercase and lowercase letters.
*/
// Solution
const halvesAreAlike = (s) => {
// create new variables for left and right halves of the string
let left = s.slice(0, (s.length/2)).toUpperCase()
let right = s.slice((s.length/2), s.length).toUpperCase()
// create new variables for the count of vowels in each halve of the string
let leftVowels = 0
let rightVowels = 0
// loop through length of either halve, and check for uppercase vowel
// if character is uppercase vowel, incremenet respective vowel count
for (let i = 0; i < left.length; i++) {
if (left[i] === 'A' || left[i] === 'E' || left[i] === 'I' || left[i] === 'O' || left[i] === 'U') {
leftVowels++
}
if (right[i] === 'A' || right[i] === 'E' || right[i] === 'I' || right[i] === 'O' || right[i] === 'U') {
rightVowels++
}
}
// return true if vowel coutns are the same value, otherwise false
return (leftVowels === rightVowels)
}