Skip to content

Commit 059882d

Browse files
authored
Improved task 3136
1 parent 3da55db commit 059882d

File tree

2 files changed

+82
-23
lines changed

2 files changed

+82
-23
lines changed
Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,26 @@
11
package g3101_3200.s3136_valid_word;
22

3-
// #Easy #String #2024_05_07_Time_1_ms_(99.39%)_Space_41.9_MB_(59.69%)
3+
// #Easy #String #2025_07_15_Time_1_ms_(99.12%)_Space_42.10_MB_(62.25%)
44

55
public class Solution {
66
public boolean isValid(String word) {
77
if (word.length() < 3) {
88
return false;
99
}
10-
if (word.contains("@") || word.contains("#") || word.contains("$")) {
11-
return false;
12-
}
13-
char[] vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
14-
char[] consonants = {
15-
'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v',
16-
'w', 'x', 'y', 'z', 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q',
17-
'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z'
18-
};
19-
boolean flag1 = false;
20-
boolean flag2 = false;
21-
for (char c : vowels) {
22-
if (word.indexOf(c) != -1) {
23-
flag1 = true;
24-
break;
25-
}
26-
}
27-
for (char c : consonants) {
28-
if (word.indexOf(c) != -1) {
29-
flag2 = true;
30-
break;
10+
boolean hasVowel = false;
11+
boolean hasConsonant = false;
12+
for (char c : word.toCharArray()) {
13+
if (Character.isLetter(c)) {
14+
char ch = Character.toLowerCase(c);
15+
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
16+
hasVowel = true;
17+
} else {
18+
hasConsonant = true;
19+
}
20+
} else if (!Character.isDigit(c)) {
21+
return false;
3122
}
3223
}
33-
return flag1 && flag2;
24+
return hasVowel && hasConsonant;
3425
}
3526
}

src/test/java/g3101_3200/s3136_valid_word/SolutionTest.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,72 @@ void isValid2() {
2020
void isValid3() {
2121
assertThat(new Solution().isValid("a3$e"), equalTo(false));
2222
}
23+
24+
@Test
25+
void isValid4() {
26+
assertThat(new Solution().isValid("a"), equalTo(false));
27+
assertThat(new Solution().isValid("ab"), equalTo(false));
28+
assertThat(new Solution().isValid("1"), equalTo(false));
29+
assertThat(new Solution().isValid("1a"), equalTo(false));
30+
assertThat(new Solution().isValid(""), equalTo(false));
31+
}
32+
33+
@Test
34+
void isValid5() {
35+
assertThat(new Solution().isValid("aei"), equalTo(false));
36+
assertThat(new Solution().isValid("AEI"), equalTo(false));
37+
assertThat(new Solution().isValid("Aei"), equalTo(false));
38+
assertThat(new Solution().isValid("uuu"), equalTo(false));
39+
}
40+
41+
@Test
42+
void isValid6() {
43+
assertThat(new Solution().isValid("bcdfg"), equalTo(false));
44+
assertThat(new Solution().isValid("BCD"), equalTo(false));
45+
assertThat(new Solution().isValid("xyz"), equalTo(false));
46+
assertThat(new Solution().isValid("QWRTY"), equalTo(false));
47+
}
48+
49+
@Test
50+
void isValid7() {
51+
assertThat(new Solution().isValid("abc"), equalTo(true));
52+
assertThat(new Solution().isValid("bac"), equalTo(true));
53+
assertThat(new Solution().isValid("AeIbcD"), equalTo(true));
54+
assertThat(new Solution().isValid("tree"), equalTo(true));
55+
assertThat(new Solution().isValid("skyE"), equalTo(true));
56+
}
57+
58+
@Test
59+
void isValid8() {
60+
assertThat(new Solution().isValid("a1b2c"), equalTo(true));
61+
assertThat(new Solution().isValid("1a2b"), equalTo(true));
62+
assertThat(new Solution().isValid("b2c4e"), equalTo(true));
63+
assertThat(new Solution().isValid("123"), equalTo(false));
64+
}
65+
66+
@Test
67+
void isValid10() {
68+
assertThat(new Solution().isValid("a#b"), equalTo(false));
69+
assertThat(new Solution().isValid("@ab"), equalTo(false));
70+
assertThat(new Solution().isValid("ab!"), equalTo(false));
71+
assertThat(new Solution().isValid("c_d"), equalTo(false));
72+
assertThat(new Solution().isValid("a.b"), equalTo(false));
73+
assertThat(new Solution().isValid("abc "), equalTo(false));
74+
}
75+
76+
@Test
77+
void isValid11() {
78+
assertThat(new Solution().isValid("AbC"), equalTo(true));
79+
assertThat(new Solution().isValid("BacE1"), equalTo(true));
80+
assertThat(new Solution().isValid("zEi"), equalTo(true));
81+
}
82+
83+
@Test
84+
void isValid12() {
85+
assertThat(new Solution().isValid("a1b"), equalTo(true));
86+
assertThat(new Solution().isValid("ab1"), equalTo(true));
87+
assertThat(new Solution().isValid("1ab"), equalTo(true));
88+
assertThat(new Solution().isValid("1a"), equalTo(false));
89+
assertThat(new Solution().isValid("1b"), equalTo(false));
90+
}
2391
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy