我很想检查一个文本中的字母是否以相同的顺序出现在另一个文本中。
text "Ce"
name "Arsenic"
Answer False
for x in text:
if x.lower() not in name.lower():
return False
我希望也检查顺序,以便元素在另一个字符串中以相同的顺序出现:True else False。
目前,我的代码仅检查字母是否也出现在字符串中,但不检查它们的顺序是否相同。
请您参考如下方法:
我假设你的“按顺序”是指字符按顺序匹配。在您的示例文本“Ce”中,名称 Arsenic 应返回 False,如果文本为“eC”,则应返回 True。
首先我们检查是否所有字符都在匹配的文本中,如果是,我们进一步检查匹配索引是否有序,否则我们返回 False
def check_text(text, name):
name_lower = name.lower()
if all(x in name_lower for x in text.lower()):
char_index = [name_lower.index(x) for x in text.lower()]
return char_index == sorted(char_index)
else:
return False
>>> check_text("Ce", "Arsenic")
False
>>> check_text("eC", "Arsenic")
True
