LeetCode--290--单词模式
问题描述:
给定一种 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
包含了由单个空格分隔的小写字母。
方法1:
1 class Solution(object): 2 def wordPattern(self, pattern, str): 3 """ 4 :type pattern: str 5 :type str: str 6 :rtype: bool 7 """ 8 strtoList = str.split() 9 if len(set(pattern)) != len(set(strtoList)) or len(pattern) != len(strtoList) : 10 return False 11 dic = {} 12 for i,val in enumerate(pattern): 13 if val in dic: 14 if strtoList[i] != dic[val]: 15 return False 16 else: 17 dic[val] = strtoList[i] 18 return True
官方:
1 class Solution(object): 2 def wordPattern(self, pattern, str): 3 """ 4 :type pattern: str 5 :type str: str 6 :rtype: bool 7 """ 8 strlist = str.split() 9 10 if len(pattern) != len(strlist): 11 return False 12 return (len(set(pattern))) == (len(set(strlist))) == (len(set(zip(pattern, strlist))))
2018-09-25 18:51:41