У меня есть следующий код:
def perm(s, length, i=0, best=0):
original='MTR'
s=list(s)
if i==length:
print(s)
for k in range(0,len(s)):
score=0
if s[k]==original[k]:
if s[k]=='M':
score+=3
elif s[k]=='T':
score+=2
if s[k]!=original[k]:
score-=3
if score>best:
best=score
else:
for j in range(i,length):
s[i], s[j] = s[j], s[i]
perm(s, length, i+1, best)
s[i], s[j] = s[j], s[i]
return best
print(perm('MTB', len('MTB')))
Код должен находить различные расположения входной строки и затем выводить лучший результат в зависимости от того, насколько хорошо расположение соответствует исходной строке.
В этом случае предполагается, что значение 'best' должно выводить 5 в самом конце кода, но сейчас его вывод неверен, потому что рекурсия сбрасывает свое значение. Может ли кто-нибудь помочь мне решить эту проблему?
Я новичок в python, поэтому, пожалуйста, извините за плохой синтаксис!
(я понимаю, что logi c этого кода не делает смысл!)