Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b79d93c

Browse files
authored
Improved task 3136
1 parent 528ced9 commit b79d93c

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_160_ms_(92.50%)_Space_35.5_MB_(90.00%)
3+
// #Easy #String #2025_07_15_Time_2_ms_(100.00%)_Space_41.87_MB_(100.00%)
44

55
class Solution {
66
fun isValid(word: String): Boolean {
77
if (word.length < 3) {
88
return false
99
}
10-
if (word.contains("@") || word.contains("#") || word.contains("$")) {
11-
return false
12-
}
13-
val vowels = charArrayOf('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U')
14-
val consonants = charArrayOf(
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-
var flag1 = false
20-
var flag2 = false
21-
for (c in vowels) {
22-
if (word.indexOf(c) != -1) {
23-
flag1 = true
24-
break
25-
}
26-
}
27-
for (c in consonants) {
28-
if (word.indexOf(c) != -1) {
29-
flag2 = true
30-
break
10+
var hasVowel = false
11+
var hasConsonant = false
12+
for (c in word.toCharArray()) {
13+
if (Character.isLetter(c)) {
14+
val ch = c.lowercaseChar()
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/kotlin/g3101_3200/s3136_valid_word/SolutionTest.kt‎

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

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /