问题描述:
给定一个字符串模式 pattern 和一个字符串 str,请你判断 str 是否遵循相同的单词模式。这里的遵循指完全匹配,即 str 中的每个单词与 pattern 中的每个字符一一对应。
示例:
输入: pattern = “abba”, str = “dog cat cat dog”
输出: true
输入: pattern = “abba”, str = “dog cat cat fish”
输出: false
输入: pattern = “aaaa”, str = “dog cat cat dog”
输出: false
输入: pattern = “abba”, str = “dog dog dog dog”
输出: false
解决方案:
为了解决这个问题,我们可以利用哈希表来建立字符与单词之间的映射关系。我们遍历字符串 pattern 和字符串 str,对于 pattern 中的每个字符和 str 中的每个单词,我们分别检查当前字符或单词是否已经存在于哈希表中。具体步骤如下:
- 首先,我们将 pattern 和 str 使用空格分割成字符数组和单词数组。
- 如果字符数组和单词数组的长度不相等,说明它们无法一一对应,返回 false。
- 初始化两个空的哈希表,分别用于存储字符到单词的映射和单词