码迷,mamicode.com
首页 > 编程语言 > 详细

算法43----字符串【同模式】

时间:2018-11-09 21:06:38      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:title   bar   self   iso   ==   必须   连接   示例   题目   

一、题目:同构字符串

给定两个字符串 和 t,判断它们是否是同构的。

如果 中的字符可以被替换得到 ,那么这两个字符串是同构的。

所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。

示例 1:

输入: s = "egg", t = "add"
输出: true

示例 2:

输入: s = "foo", t = "bar"
输出: false

示例 3:

输入: s = "paper", t = "title"
输出: true

说明:
你可以假设 t 具有相同的长度。

 

代码:

def isIsomorphic(self, s, t):
    return len(set(zip(s,t))) == len(set(s)) == len(set(t))

 


二、题目:单词模式:

给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。

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

示例1:

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

示例 2:

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

示例 3:

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

示例 4:

输入: pattern = "abba", str = "dog dog dog dog"
输出: false

说明:
你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。    

代码:

    def wordPattern(self, pattern, str):
        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """
        a = str.split(" ")
        if len(pattern) != len(a):
            return False
        return len(set(zip(a,pattern))) == len(set(pattern)) == len(set(a))

 

算法43----字符串【同模式】

标签:title   bar   self   iso   ==   必须   连接   示例   题目   

原文地址:https://www.cnblogs.com/Lee-yl/p/9936720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!