Skip to content

Commit 0aa1ea5

Browse files
committedMay 24, 2021
feat: add solutions to lc problem: No.1704. Determine if String Halves Are Alike
1 parent 5f228c3 commit 0aa1ea5

File tree

4 files changed

+69
-4
lines changed

4 files changed

+69
-4
lines changed
 

‎solution/1700-1799/1704.Determine if String Halves Are Alike/README.md

+23-2
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,36 @@
6363
<!-- 这里可写当前语言的特殊实现逻辑 -->
6464

6565
```python
66-
66+
class Solution:
67+
def halvesAreAlike(self, s: str) -> bool:
68+
half = len(s) >> 1
69+
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
70+
s1 = sum(1 for c in s[:half] if c in vowels)
71+
s2 = sum(1 for c in s[half:] if c in vowels)
72+
return s1 == s2
6773
```
6874

6975
### **Java**
7076

7177
<!-- 这里可写当前语言的特殊实现逻辑 -->
7278

7379
```java
74-
80+
class Solution {
81+
public boolean halvesAreAlike(String s) {
82+
int half = s.length() >> 1;
83+
Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
84+
int s1 = 0, s2 = 0;
85+
for (int i = 0; i < half; ++i) {
86+
if (vowels.contains(s.charAt(i))) {
87+
++s1;
88+
}
89+
if (vowels.contains(s.charAt(half + i))) {
90+
++s2;
91+
}
92+
}
93+
return s1 == s2;
94+
}
95+
}
7596
```
7697

7798
### **...**

‎solution/1700-1799/1704.Determine if String Halves Are Alike/README_EN.md

+23-2
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,34 @@ Notice that the vowel o is counted twice.
5959
### **Python3**
6060

6161
```python
62-
62+
class Solution:
63+
def halvesAreAlike(self, s: str) -> bool:
64+
half = len(s) >> 1
65+
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
66+
s1 = sum(1 for c in s[:half] if c in vowels)
67+
s2 = sum(1 for c in s[half:] if c in vowels)
68+
return s1 == s2
6369
```
6470

6571
### **Java**
6672

6773
```java
68-
74+
class Solution {
75+
public boolean halvesAreAlike(String s) {
76+
int half = s.length() >> 1;
77+
Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
78+
int s1 = 0, s2 = 0;
79+
for (int i = 0; i < half; ++i) {
80+
if (vowels.contains(s.charAt(i))) {
81+
++s1;
82+
}
83+
if (vowels.contains(s.charAt(half + i))) {
84+
++s2;
85+
}
86+
}
87+
return s1 == s2;
88+
}
89+
}
6990
```
7091

7192
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public boolean halvesAreAlike(String s) {
3+
int half = s.length() >> 1;
4+
Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
5+
int s1 = 0, s2 = 0;
6+
for (int i = 0; i < half; ++i) {
7+
if (vowels.contains(s.charAt(i))) {
8+
++s1;
9+
}
10+
if (vowels.contains(s.charAt(half + i))) {
11+
++s2;
12+
}
13+
}
14+
return s1 == s2;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def halvesAreAlike(self, s: str) -> bool:
3+
half = len(s) >> 1
4+
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
5+
s1 = sum(1 for c in s[:half] if c in vowels)
6+
s2 = sum(1 for c in s[half:] if c in vowels)
7+
return s1 == s2

0 commit comments

Comments
 (0)
Please sign in to comment.