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)