Isomorphic Strings

本文介绍了一个JavaScript函数,用于判断两个给定的字符串是否为同构字符串。同构字符串是指两个字符串中的字符可以相互替换,使得一个字符串变为另一个字符串,同时保持字符出现的顺序不变。文章通过具体的例子解释了同构字符串的概念,并提供了一个实现该功能的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

For example,
Given “egg”, “add”, return true.

Given “foo”, “bar”, return false.

Given “paper”, “title”, return true.

var isIsomorphic = function(s, t) {
    var obj = {};
    for(var i = 0; i < s.length; i++) {
        var charS = s.charAt(i);
        var charT = t.charAt(i);
        if(obj[charS]){
            if(obj[charS] != charT) {
                return false
            }
        }else{
            if(Object.values(obj).indexOf(charT) == -1){
                obj[charS] = charT
            }else{
                return false
            }
        }
    }
    return true
};
<think>好的,我现在需要帮助用户找到LeetCode上与模式'M'相关的题目或解法。首先,我需要理解用户的需求。用户提到的是“模式与字母'M'相关的题目”,这里的“模式”可能指的是题目中的某种模式匹配,或者是题目名称、标签中包含字母'M'。不过根据用户提供的引用内容,比如引用[2]和[3]提到了“模式匹配”和“Word Pattern”,可能用户是指题目类型或解法涉及模式匹配,特别是包含字母'M'的情况。 接下来,我需要回忆LeetCode上的相关题目。例如,题目290. Word Pattern(单词模式)是一个典型的模式匹配问题,要求判断字符串是否符合给定的模式。这可能就是引用[3]中提到的内容。另外,题目205. Isomorphic Strings(同构字符串)也涉及类似的模式匹配,虽然题目中没有直接提到'M',但解法类似,可能相关。 然后,用户可能还想知道是否有题目直接以字母'M'命名或涉及'M'作为模式的一部分。例如,题目890. Find and Replace Pattern(查找和替换模式)可能符合条件,因为它的解题方法与模式匹配相关,如引用[2]所提到的。此外,可能还有其他题目,比如76. Minimum Window Substring(最小覆盖子串),涉及滑动窗口模式,虽然名称中没有'M',但模式匹配相关。 需要确认这些题目的解法是否与字母'M'相关,或者题目本身是否包含'M'。例如,用户可能想查找题目编号或标题中包含'M'的题目,但根据引用中的例子,可能更多是模式匹配类的问题,如Word Pattern。 还需要检查是否有其他可能的题目,比如涉及正则表达式匹配的题目,如10. Regular Expression Matching,其中包含'M'相关的匹配规则,比如通配符的使用,或者题目编号中的字母'M',但这里题目编号是数字,可能不符合。 综合来看,用户可能是在寻找涉及模式匹配(pattern)的题目,特别是解法中使用到映射(Map)或者双向映射检查的问题,例如使用哈希表来跟踪字符之间的对应关系。因此,需要列出这类题目,并指出它们的解法与模式匹配的关系,可能涉及到字母'M'作为模式中的一个字符,或者题目名称中包含'M'。 另外,用户提供的引用[3]提到了290题和137题,但137题是关于Single Number的,可能与模式无关,但290题是明确的模式匹配问题。因此,重点应放在模式匹配类题目上,例如290、205、890等。 最后,生成相关问题时要考虑用户可能的后续需求,例如如何实现这些题目的解法,或者模式匹配的优化方法等。</think>### LeetCode与模式'M'相关的题目及解法 以下是LeetCode中涉及**模式匹配**或题目名称/解法包含字母**'M'**的部分题目: --- #### 1. 290. 单词模式 (Word Pattern) **题目描述**: 给定一种规律`pattern`和一个字符串`s`,判断`s`是否遵循相同的规律[^3]。 **示例**: `pattern = "abba", s = "dog cat cat dog"` → `true` **解法思路**: 使用双哈希表维护字符与单词的**双向映射**,确保模式匹配一致性。 ```python def wordPattern(pattern, s): words = s.split() if len(pattern) != len(words): return False char_to_word = {} word_to_char = {} for c, w in zip(pattern, words): if c in char_to_word: if char_to_word[c] != w: return False else: if w in word_to_char: return False char_to_word[c] = w word_to_char[w] = c return True ``` --- #### 2. 890. 查找和替换模式 (Find and Replace Pattern) **题目描述**: 给定单词列表和模式`pattern`,返回所有与模式匹配的单词[^2]。 **示例**: 输入:`words = ["abc","deq","mee","aqq"], pattern = "abb"` → 输出:`["mee","aqq"]` **解法思路**: 与290题类似,对每个单词检查是否满足双向映射关系。 --- #### 3. 205. 同构字符串 (Isomorphic Strings) **题目描述**: 判断两个字符串是否同构(字符映射关系一致)。 **示例**: `s = "egg", t = "add"` → `true` **解法**: 同样使用双哈希表验证双向映射。 --- #### 4. 76. 最小覆盖子串 (Minimum Window Substring) **题目描述**: 在字符串`s`中找到包含字符串`t`所有字符的最小子串。 **关联性**: 使用**滑动窗口模式**匹配目标字符集,虽不直接涉及字母'M',但属于模式匹配的高频题。 --- #### 5. 10. 正则表达式匹配 (Regular Expression Matching) **题目描述**: 实现支持`'.'`和`'*'`的正则表达式匹配。 **关联性**: 模式`p`中可能包含通配符,与广义模式匹配相关。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值