求star

开源不易,喜欢请点个star吧

Ocean Han
282 字
1 分钟
Leetcode->单词规律
2022-07-23

题目#

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。

这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。

示例1:

输入: pattern = "abba", s = "dog cat cat dog"
输出: true

示例 2:

输入:pattern = "abba", s = "dog cat cat fish"
输出: false

示例 3:

输入: pattern = "aaaa", s = "dog cat cat dog"
输出: false

提示:

  • 1 <= pattern.length <= 300

  • pattern 只包含小写英文字母

  • 1 <= s.length <= 3000

  • s 只包含小写英文字母和 ' '

  • s 不包含 任何前导或尾随对空格

  • s 中每个单词都被 单个空格 分隔

解题:key:#

①哈希数组#

TIP

​ 此题和之前的 ‘同构字符串’ 这题几乎一样,所以用了相同的方法

/**
 * @param {string} pattern
 * @param {string} s
 * @return {boolean}
 */
var wordPattern = function(pattern, s) {
    // 去重
    let p1 = [...new Set(pattern)]
    let s1 = [...new Set(s.split(' '))]
    
    let hash = []
    for(let i= 0;i<s1.length;i++){
        hash[p1[i]] = s1[i]
    }
    let newS = ''
    for(let i= 0;i<pattern.length;i++){
        newS += hash[pattern[i]] + ' '
    }
    return newS.trim() === s
};
Leetcode->单词规律
https://blog.oceanh.top/posts/algorithm/单词规律/
作者
Ocean Han
发布于
2022-07-23
许可协议
CC BY-NC-SA 4.0
最后修改时间
2024-08-10 10:08:49