这是我必须回答的问题:
找到一个字母的换位序列,将序列MARINE(字母编号为0..5)转换为序列AIRMEN。换位用整数对表示。例如,对(0,1)将MARINE转换为AMRINE。换位是从左到右执行的。您应该这样写来定义序列(点应该被数字替换,括号中的每一对指定一个排列,这些排列从左到右依次执行):
def序列():
返回[(…,…),…,(…,…)]
当我运行这个程序时,我似乎遇到了一个运行时错误。我找不到错误在哪里。如果我能得到一些帮助,那将非常有用。谢谢!:)
这是我的代码:
def sequence(original, target):
permutation = []
chars_original = []
for char in original:
chars_original.append(char)
#print('original: ', chars_original)
chars_target = []
for char in target:
chars_target.append(char)
#print('target: ', chars_target)
for i in range(0, len(target)):
if chars_target[i]== chars_original[i]:
continue
else:
temp_list = []
temp_list.append(i)
j = chars_original.index(chars_target[i])
temp_list.append(j)
temp = chars_original[i]
chars_original[i] = chars_original[j]
chars_original[j] = temp
a = tuple (temp_list)
permutation.append(a)
#print(permutation)
#print(chars_original)
return permutation
sequence('MARINE', 'AIRMEN')
你能试试这个吗
相关问题 更多 >
编程相关推荐