-09-07 回答
分析题目,其实就是尽量保留原来的字母。
首先按照字母出现的顺序找出要保留的字母,然后,其他的从源单词删除,然后把插入目标中的其他字母。
算法是个人推理,没有证明100%正确,做个参考把(python3):
defget_copy_del_chars(src,des):
start=0
result=[]
forcharinsrc:
pos=des[start:].find(char)
ifpos>=0:
result.append(('c',char))
start=start+pos+1
else:
result.append(('d',char))
returnresult
defword2word(src,des):
copy_del_chars=get_copy_del_chars(src,des)
result=[]
idx=0
foraction,charincopy_del_chars:
ifaction=='d':
result.append((action,char))
continue
ifdes[idx]==char:
result.append((action,char))
idx+=1
continue
whiletrue:
result.append(('i',des[idx]))
idx+=1
ifdes[idx]==char:
result.append((action,char))
idx+=1
break
returnresult
defcalc_score(operates):
score_map={'i':20,'c':5,'d':20}
returnsum(score_map[op[0]]foropinoperates)
if__name__=='__main__':
operates=word2word('algorithm','alligator')
print(calc_score(operates))
如果觉得《最小二乘python_python怎么做最小二乘估计》对你有帮助,请点赞、收藏,并留下你的观点哦!