1.问题描述
给定一种规律 pattern和一个字符串s,判断s是否遵循相同的规律。
这里的遵循指完全匹配,例如,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
来源:力扣(LeetCode)
2.算法描述
本问题主要在于判断所给的pattern规律是否符合str输入的规律,“是”则返回Ture,“否”则返回False。我们今天主要就是通过比较两个变量的index索引值。
我们首先能看见str是一个用空格隔开的整体的字符串,我们需要用str.split(“ ”)的方式来将整个字符串以“空格”为参照物来拆分为多个字符。再使用pattern.index、str.index来得出关于相同字符的索引,以此来判断是否满足两者相同。
3.实验讨论与结果
找出其中的内在逻辑,并写出过程,带入值,输出结果。
pattern="abba" a="ads pwe dai pwe" n=a.split(" ") print(list(map(pattern.index,pattern))) print(list(map(n.index,n))) if list(map(pattern.index,pattern))==list(map(n.index,n)): print("Ture") else: print("False") |
四.结语
我们能够将它用于迅速比较两个事物类型是否相同的其他案例中,如果是再进阶一点的话,我认为来判断str的首字母会更体现水平与难度。
当然这也只是解决方法之一,此法仅供参考。