Python程序:找出提供的字符串是否在统一位置上相差一个字符
假设我们提供一个包含多个相同长度的字符串的数组。我们必须找出是否有任何两个提供的字符串在相同位置上相差一个字符。如果存在这种差异,我们返回True,否则返回False。
因此,如果输入如下 dict = [‘pqrs’,’prqs’,’paqs’],那么输出为True,输出的原因是列表中的字符串在索引1处存在差异。因此,如果取任意两个字符串比较,在相同位置上存在差异。
要解决这个问题,我们将按照以下步骤进行 –
- seens := 一个新的集合
-
对于字典中的每个单词,做以下操作 –
- 对于单词中的每个索引i和字符c,做以下操作 –
- masked_word := word[from index 0 to i] + ‘.’ + word[from index i+1 to end of string]
-
如果在seens中存在masked_word,则 –
-
返回True
-
否则,将masked_word添加到seens中
-
返回False
- 对于单词中的每个索引i和字符c,做以下操作 –
例子(Python)
让我们看以下实现,以便更好地理解 –
def solve(dict):
seens = set()
for word in dict:
for i, c in enumerate(word):
masked_word = word[:i] + '.' + word[i+1:]
if masked_word in seens:
return True
else:
seens.add(masked_word)
return False
print(solve(['pqrs', 'prqs', 'paqs']))
输入
['pqrs', 'prqs', 'paqs']
输出
True