Вопрос: даны строка, m и n.
ввод 1: исходная строка
ввод 2: m (меньше длины строки): вырезать m алфавитов из конца строки а затем добавить в начало строки.
ввод 3: n (меньше длины строки): отрежьте n алфавитов от конца строки, полученной на предыдущем шаге, и затем добавьте к началу этой строки.
Этот процесс продолжается, необходимо чтобы узнать количество оборотов, необходимое для возврата исходной строки.
def harry(str, m, n):
le = len(str)
org = str.upper()
str = str.upper()
turn = 0
for i in str:
str3 = str[-m:] # last n letters
str = str.replace(' ', '')[:-m]
str = str3 + str
print(str)
if org != str:
turn = turn + 1
str4 = str[-n:]
str = str.replace(' ', '')[:-n]
str= str4 + str
print(str)
turn = turn + 1
if org == str:
break
print(turn)
str = input("Enter the string")
m=int(input("Enter the value of m"))
n=int(input("Enter the value of n"))
harry(str, m, n)
полученный результат:
Enter the stringarya
Enter the value of m1
Enter the value of n2
AARY
RYAA
ARYA
2
исходный результат, который должен быть получен:
3
(Для возврата исходной строки Arya требуется 3 хода.)
Я получаю вывод для всех слов, кроме таких слов, особенно когда одна и та же буква встречается последовательно. Пожалуйста, помогите мне с этим.