From 3e62d6fa6fb68671a7c2414455afc06f6b3f663b Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 2 Oct 2026 12:41:52 -0400 Subject: [PATCH] =?UTF-8?q?docs(content):=20add=20290=E2=80=AFWord?= =?UTF-8?q?=E2=80=AFPattern=20page=20and=20fix=20String=20badge=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hash-table/290-word-pattern.mdx | 57 +++++++++++++++++++ .../appendix/(1-data-structures)/string.mdx | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/(01-linear-structures)/hash-table/290-word-pattern.mdx diff --git a/apps/docs/content/(01-linear-structures)/hash-table/290-word-pattern.mdx b/apps/docs/content/(01-linear-structures)/hash-table/290-word-pattern.mdx new file mode 100644 index 0000000..d5131a4 --- /dev/null +++ b/apps/docs/content/(01-linear-structures)/hash-table/290-word-pattern.mdx @@ -0,0 +1,57 @@ +--- +title: '290. Word Pattern' +description: Given a pattern and a string s, find if s follows the same pattern +icon: dot +topics: + - { name: "Hash Table", slug: "hash-table" } + - { name: "String", slug: "string" } +issue: "https://github.com/prdlk/leetcode/issues/35" +sidebar: + label: 'Word Pattern' + badge: 'Easy' +--- + +### Example 1: +- Input: `pattern = "abba", s = "dog cat cat dog"` +- Output: `true` +- Explanation: The bijection can be established as: • 'a' maps to "dog". • 'b' maps to "cat". + +### Example 2: +- Input: `pattern = "abba", s = "dog cat cat fish"` +- Output: `false` + +### Example 3: +- Input: `pattern = "aaaa", s = "dog cat cat dog"` +- Output: `false` + +### Constraints: + +- `1 <= pattern.length <= 300` +- `pattern` contains only lower-case English letters. +- `1 <= s.length <= 3000` +- `s` contains only lowercase English letters and spaces ' '. +- `s` does not contain any leading or trailing spaces. +- All the words in `s` are separated by a single space. + +## Solution + +```py +class Solution: + def wordPattern(self, pattern: str, s: str) -> bool: + if len(pattern) != len(s.split()): + return False + + words = s.split() + map = {} + + for i in range(len(pattern)): + c = pattern[i] + w = words[i] + + if c in map and map[c] != w: + return False + else: + map[c] = w + + return len(set(pattern)) == len(set(words)) +``` diff --git a/apps/docs/content/appendix/(1-data-structures)/string.mdx b/apps/docs/content/appendix/(1-data-structures)/string.mdx index 6568310..b563eab 100644 --- a/apps/docs/content/appendix/(1-data-structures)/string.mdx +++ b/apps/docs/content/appendix/(1-data-structures)/string.mdx @@ -3,7 +3,7 @@ title: "String" list: "https://leetcode.com/problem-list/string/" icon: quote sidebar: - badge: '17' + badge: '18' --- :::note