diff --git a/src/main/java/g3101_3200/s3136_valid_word/Solution.java b/src/main/java/g3101_3200/s3136_valid_word/Solution.java index c4c41dd46..72b6e38c1 100644 --- a/src/main/java/g3101_3200/s3136_valid_word/Solution.java +++ b/src/main/java/g3101_3200/s3136_valid_word/Solution.java @@ -1,35 +1,26 @@ package g3101_3200.s3136_valid_word; -// #Easy #String #2024_05_07_Time_1_ms_(99.39%)_Space_41.9_MB_(59.69%) +// #Easy #String #2025_07_15_Time_1_ms_(99.12%)_Space_42.10_MB_(62.25%) public class Solution { public boolean isValid(String word) { if (word.length() < 3) { return false; } - if (word.contains("@") || word.contains("#") || word.contains("$")) { - return false; - } - char[] vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}; - char[] consonants = { - 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', - 'w', 'x', 'y', 'z', 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', - 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z' - }; - boolean flag1 = false; - boolean flag2 = false; - for (char c : vowels) { - if (word.indexOf(c) != -1) { - flag1 = true; - break; - } - } - for (char c : consonants) { - if (word.indexOf(c) != -1) { - flag2 = true; - break; + boolean hasVowel = false; + boolean hasConsonant = false; + for (char c : word.toCharArray()) { + if (Character.isLetter(c)) { + char ch = Character.toLowerCase(c); + if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { + hasVowel = true; + } else { + hasConsonant = true; + } + } else if (!Character.isDigit(c)) { + return false; } } - return flag1 && flag2; + return hasVowel && hasConsonant; } } diff --git a/src/test/java/g3101_3200/s3136_valid_word/SolutionTest.java b/src/test/java/g3101_3200/s3136_valid_word/SolutionTest.java index 8fe1dc8de..3b72b4cf0 100644 --- a/src/test/java/g3101_3200/s3136_valid_word/SolutionTest.java +++ b/src/test/java/g3101_3200/s3136_valid_word/SolutionTest.java @@ -20,4 +20,72 @@ void isValid2() { void isValid3() { assertThat(new Solution().isValid("a3$e"), equalTo(false)); } + + @Test + void isValid4() { + assertThat(new Solution().isValid("a"), equalTo(false)); + assertThat(new Solution().isValid("ab"), equalTo(false)); + assertThat(new Solution().isValid("1"), equalTo(false)); + assertThat(new Solution().isValid("1a"), equalTo(false)); + assertThat(new Solution().isValid(""), equalTo(false)); + } + + @Test + void isValid5() { + assertThat(new Solution().isValid("aei"), equalTo(false)); + assertThat(new Solution().isValid("AEI"), equalTo(false)); + assertThat(new Solution().isValid("Aei"), equalTo(false)); + assertThat(new Solution().isValid("uuu"), equalTo(false)); + } + + @Test + void isValid6() { + assertThat(new Solution().isValid("bcdfg"), equalTo(false)); + assertThat(new Solution().isValid("BCD"), equalTo(false)); + assertThat(new Solution().isValid("xyz"), equalTo(false)); + assertThat(new Solution().isValid("QWRTY"), equalTo(false)); + } + + @Test + void isValid7() { + assertThat(new Solution().isValid("abc"), equalTo(true)); + assertThat(new Solution().isValid("bac"), equalTo(true)); + assertThat(new Solution().isValid("AeIbcD"), equalTo(true)); + assertThat(new Solution().isValid("tree"), equalTo(true)); + assertThat(new Solution().isValid("skyE"), equalTo(true)); + } + + @Test + void isValid8() { + assertThat(new Solution().isValid("a1b2c"), equalTo(true)); + assertThat(new Solution().isValid("1a2b"), equalTo(true)); + assertThat(new Solution().isValid("b2c4e"), equalTo(true)); + assertThat(new Solution().isValid("123"), equalTo(false)); + } + + @Test + void isValid10() { + assertThat(new Solution().isValid("a#b"), equalTo(false)); + assertThat(new Solution().isValid("@ab"), equalTo(false)); + assertThat(new Solution().isValid("ab!"), equalTo(false)); + assertThat(new Solution().isValid("c_d"), equalTo(false)); + assertThat(new Solution().isValid("a.b"), equalTo(false)); + assertThat(new Solution().isValid("abc "), equalTo(false)); + } + + @Test + void isValid11() { + assertThat(new Solution().isValid("AbC"), equalTo(true)); + assertThat(new Solution().isValid("BacE1"), equalTo(true)); + assertThat(new Solution().isValid("zEi"), equalTo(true)); + } + + @Test + void isValid12() { + assertThat(new Solution().isValid("a1b"), equalTo(true)); + assertThat(new Solution().isValid("ab1"), equalTo(true)); + assertThat(new Solution().isValid("1ab"), equalTo(true)); + assertThat(new Solution().isValid("1a"), equalTo(false)); + assertThat(new Solution().isValid("1b"), equalTo(false)); + } }