题目:
根据以下规律构造一个函数根据input,返回output, 该函数能应对各种情况,包括引入新字母和新单词还有新长度情况
input:pattern = “abaa”, str = “apple orange apple apple”
output: true
整体思路:
首先可以看到input里面是字符类型,用列表可以识别出来每个字符,同时我们只需要双引号里面的内容进行匹配。
推荐思路:
- 识别逗号,把匹配规则和匹配对象分开成两个;
- 识别等于号=然后提取=后面的;
- 识别双引号里面的内容进行对应
核心代码
第一步
parttern = input_str.split(",")[0]
p_str = input_str.split(",")[1]
第二步:
a = list(parttern.split("=")[1][1:][1: -1])
b = p_str.split("=")[1][1:][1: -1].split(" ")
if len(a) != len(b):
print("字符串格式输入错误,请重新输入")
else:
a_dict = {}
第三步:
for index, a_n in enumerate(a):
a_lists = a_dict.get(a_n)
if a_lists is None:
a_dict[a_n] = [index]
else:
a_lists.append(index)
for key in a_dict.keys():
value = a_dict.get(key)[0]
simiary = b[value]
for index, b_n in enumerate(b):
if b_n == simiary:
b[index] = key
运行结果:
CSDN我只有传文章才会上线,有什么问题可以加我的微信: