Python 3.x 字符串比较在python中未按预期工作
如果我错了,请纠正我 我正在尝试使用我为Leetcode的一个问题编写的模式匹配程序。我想知道,即使输出字符串与特定的输入匹配,最后发生的错误是什么Python 3.x 字符串比较在python中未按预期工作,python-3.x,string,comparison,Python 3.x,String,Comparison,如果我错了,请纠正我 我正在尝试使用我为Leetcode的一个问题编写的模式匹配程序。我想知道,即使输出字符串与特定的输入匹配,最后发生的错误是什么 def wordPattern(pattern,str): pattern_array=[] str_array=[] pattern_array=[i for i in pattern] str_array=str.split(" ") dict={}
def wordPattern(pattern,str):
pattern_array=[]
str_array=[]
pattern_array=[i for i in pattern]
str_array=str.split(" ")
dict={}
for i in range(len(pattern_array)):
if i in dict:
if str_array[i]!=dict[pattern_array[i]]:
return False
else:
dict[pattern_array[i]]=str_array[i]
for keys, values in dict.items():
pattern=pattern.replace(keys,values+" ")
print(pattern)
print(str)
return (str==pattern)
找到了这个问题的答案,因为我在前面提到的字符串末尾添加了额外的空间
pattern=pattern.replace(键,值+)
,为字符串末尾添加的额外空间。因此,我将删除它。- 我们也可以使用
来解决这个问题map
- 在Python中,我们不必像在Java中那样将
传递到“
,例如:拆分
谢谢这个解决方案,Emma,它很有用。对于我的情况,下面的代码片段同样适用。
str="dog cat cat dog"
pattern="abba"
wordPattern(pattern,str)```
Output:
dog cat cat dog
dog cat cat dog
False
class Solution:
def wordPattern(self, pattern, sentence):
words = sentence.split()
return tuple(map(pattern.find, pattern)) == tuple(map(words.index, words))