diff --git a/solution/0200-0299/0290.Word Pattern/README.md b/solution/0200-0299/0290.Word Pattern/README.md index c36d9f6879a7c..a9736836e3b8b 100644 --- a/solution/0200-0299/0290.Word Pattern/README.md +++ b/solution/0200-0299/0290.Word Pattern/README.md @@ -261,4 +261,36 @@ public class Solution { + + +### 方法二:哈希表的另一种写法 + + + +#### TypeScript + +```ts +function wordPattern(pattern: string, s: string): boolean { + const hash: Record = Object.create(null); + const arr = s.split(/\s+/); + + if (pattern.length !== arr.length || new Set(pattern).size !== new Set(arr).size) { + return false; + } + + for (let i = 0; i < pattern.length; i++) { + hash[pattern[i]] ??= arr[i]; + if (hash[pattern[i]] !== arr[i]) { + return false; + } + } + + return true; +} +``` + + + + + diff --git a/solution/0200-0299/0290.Word Pattern/README_EN.md b/solution/0200-0299/0290.Word Pattern/README_EN.md index b04624d9d6ea3..2a8f2bd91b3a0 100644 --- a/solution/0200-0299/0290.Word Pattern/README_EN.md +++ b/solution/0200-0299/0290.Word Pattern/README_EN.md @@ -262,4 +262,36 @@ public class Solution { + + +### Solution 2 + + + +#### TypeScript + +```ts +function wordPattern(pattern: string, s: string): boolean { + const hash: Record = Object.create(null); + const arr = s.split(/\s+/); + + if (pattern.length !== arr.length || new Set(pattern).size !== new Set(arr).size) { + return false; + } + + for (let i = 0; i < pattern.length; i++) { + hash[pattern[i]] ??= arr[i]; + if (hash[pattern[i]] !== arr[i]) { + return false; + } + } + + return true; +} +``` + + + + + diff --git a/solution/0200-0299/0290.Word Pattern/Solution2.ts b/solution/0200-0299/0290.Word Pattern/Solution2.ts new file mode 100644 index 0000000000000..bb610f1a658ad --- /dev/null +++ b/solution/0200-0299/0290.Word Pattern/Solution2.ts @@ -0,0 +1,17 @@ +function wordPattern(pattern: string, s: string): boolean { + const hash: Record = Object.create(null); + const arr = s.split(/\s+/); + + if (pattern.length !== arr.length || new Set(pattern).size !== new Set(arr).size) { + return false; + } + + for (let i = 0; i < pattern.length; i++) { + hash[pattern[i]] ??= arr[i]; + if (hash[pattern[i]] !== arr[i]) { + return false; + } + } + + return true; +}