题目:
关键思路:
关键思路 1.把符号对应(A-T)转换成数字关系 0+3=3
2.用 i遍历arr1 如果arr1和arr2的第一个元素不满足,则遍历arr2
完整代码
n = int(input()) arr1 = [] arr2 = [] temp1 = list(input()) temp2 = list(input()) for i in range(n): arr1.append(temp1[i]) arr2.append(temp2[i]) #有一个原则的数组 arr3={"A":0,"C":1,"G":2,"T":3} # 3.满足剪辑互补配对 跟定重复执行第二步 #记录要操作几次 count=0 for i in range(n): if arr3[arr1[i]]+arr3[arr2[i]]!=3: for j in range(i+1,n): if arr3[arr1[i]]+arr3[arr2[j]]==3 and arr3[arr1[j]]+arr3[arr2[i]]==3 : arr2[j],arr2[i]=arr2[i],arr2[j] count+=1 print(count)
问题:
1.自己没读懂题目以为要必要两种方法,实则是两个选其一, 2.在实现arr2任意两个元素交换的时候,采用随机数模式后来想到把arr1和arr2每次两个元素结合以前与一个特定数组比较,有这思路
3.实现交换的时候还在用第三个变量过度 解决办法: arr2[j],arr2[i]=arr2[i],arr2[j]
总结:
1.把符号对应(A-T)转换成数字关系 0+3=3 2.字典的使用不熟悉arr3={"A":0,"C":1,"G":2,"T":3}
arr3[arr1[0]]:通过键获取值