From ad025552c5819ffce68d1e3f81fdea8ad5a7deb5 Mon Sep 17 00:00:00 2001 From: Ben Makusha Date: Thu, 18 Sep 2025 09:46:04 -0400 Subject: [PATCH] new: [LeetCode 1935] Maximum Number of Words You Can Type (You as in the user) --- .../a1935/MaximumNumberOfWordsYouCanType.java | 25 ++++++++++ .../MaximumNumberOfWordsYouCanTypeTest.java | 49 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 src/main/java/problemset/a1935/MaximumNumberOfWordsYouCanType.java create mode 100644 src/test/java/problemset/a1935/MaximumNumberOfWordsYouCanTypeTest.java diff --git a/src/main/java/problemset/a1935/MaximumNumberOfWordsYouCanType.java b/src/main/java/problemset/a1935/MaximumNumberOfWordsYouCanType.java new file mode 100644 index 0000000..928a1f1 --- /dev/null +++ b/src/main/java/problemset/a1935/MaximumNumberOfWordsYouCanType.java @@ -0,0 +1,25 @@ +package problemset.a1935; + +public class MaximumNumberOfWordsYouCanType { + public int canBeTypedWords(String text, String brokenLetters) { + boolean[] isBroken = new boolean[26]; + for (char c : brokenLetters.toCharArray()) + isBroken[c - 'a'] = true; + + int cnt = 0; + + for (String word : text.split(" ")) { + boolean canType = true; + for (char c : word.toCharArray()) { + if (isBroken[c - 'a']) { + canType = false; + break; + } + } + if (canType) + cnt++; + } + + return cnt; + } +} diff --git a/src/test/java/problemset/a1935/MaximumNumberOfWordsYouCanTypeTest.java b/src/test/java/problemset/a1935/MaximumNumberOfWordsYouCanTypeTest.java new file mode 100644 index 0000000..4833613 --- /dev/null +++ b/src/test/java/problemset/a1935/MaximumNumberOfWordsYouCanTypeTest.java @@ -0,0 +1,49 @@ +package problemset.a1935; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class MaximumNumberOfWordsYouCanTypeTest { + + private MaximumNumberOfWordsYouCanType max; + + private String testCaseOne_Text; + private String testCaseOne_BrokenLetters; + + private String testCaseTwo_Text; + private String testCaseTwo_BrokenLetters; + + private String testCaseThree_Text; + private String testCaseThree_BrokenLetters; + + @BeforeEach + void setUp() { + max = new MaximumNumberOfWordsYouCanType(); + + testCaseOne_Text = "hello world"; + testCaseOne_BrokenLetters = "ad"; + + testCaseTwo_Text = "leet code"; + testCaseTwo_BrokenLetters = "lt"; + + testCaseThree_Text = "leet code"; + testCaseThree_BrokenLetters = "e"; + } + + @Test + void canBeTypedWords_testCaseOne() { + assertEquals(1, max.canBeTypedWords(testCaseOne_Text, testCaseOne_BrokenLetters)); + } + + @Test + void canBeTypedWords_testCaseTwo() { + assertEquals(1, max.canBeTypedWords(testCaseTwo_Text, testCaseTwo_BrokenLetters)); + } + + @Test + void canBeTypedWords_testCaseThree() { + assertEquals(0, max.canBeTypedWords(testCaseThree_Text, testCaseThree_BrokenLetters)); + } +} \ No newline at end of file