leetcode-单词规律

290. 单词规律

题解

可以使用哈希表来解决这个问题。首先,将 pattern 中的每个字符映射到一个不同的整数,然后将字符串 s 中的每个单词也映射到相应的整数。如果两个映射关系相同,则说明 s 遵循相同的规律。

具体步骤如下:

  1. 创建一个空的哈希表,用于存储 pattern 中的字符和字符串 s 中的单词之间的映射关系。
  2. 遍历 pattern,对于每个字符,将其映射到一个整数。可以使用一个计数器来生成唯一的整数。
  3. 遍历字符串 s,对于每个单词,将其映射到一个整数。同样使用计数器来生成唯一的整数。
  4. 检查两个映射关系是否相同。如果不同,则返回 False;否则,返回 True。
class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        words = s.split()
        if len(pattern) != len(words):
            return False
        pattern_to_word = {}
        word_to_pattern = {}

        for p, w in zip(pattern, words):
            if p not in pattern_to_word:
                pattern_to_word[p] = w
            if w not in word_to_pattern:
                word_to_pattern[w] = p
            
            if pattern_to_word[p] != w or word_to_pattern[w] != p:
                return False
        return True

你可能感兴趣的:(leetcode)