Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Пример с сайта acmp, не понимаю как можно оптимизировать свой код

вот страница с условиями задачи: https://acmp.ru/index.asp?main=task&id_task=203

вот текст задачи:
Мальчик Кирилл написал однажды на листе бумаги строчку, состоящую из больших и маленьких английских букв, а после этого ушел играть в футбол. Когда он вернулся, то обнаружил, что его друг Дима написал под его строкой еще одну строчку такой же длины. Дима утверждает, что свою строчку он получил циклическим сдвигом строки Кирилла направо на несколько шагов (циклический сдвиг строки abcde на 2 позиции направо даст строку deabc). Однако Дима известен тем, что может случайно ошибиться в большом количестве вычислений, поэтому Кирилл в растерянности - верить ли Диме? Помогите ему!


По данным строкам выведите минимально возможный размер сдвига вправо или -1, если Дима ошибся.
Входные данные:
Первые две строки входного файла INPUT.TXT содержат строки Кирилла и Димы соответственно. Строки состоят только из английских символов. Длины строк одинаковы, не превышают 10000 и не равны 0.
Выходные данные:
В выходной файл OUTPUT.TXT выведите единственное число - ответ на поставленную задачу.


вот сам код:
def remove_string(string):

new_string = ''

new_string += string[-1]

for i in range(len(string)-1):

new_string += string[i]

return new_string

def removed(string_user, string_key):

count_remove = 0

if string_user == string_key:

return 0

while count_remove != len(string_user):

count_remove += 1

string_user = remove_string(string_user)

if string_user == string_key:

return count_remove

return -1

new_string = input()

key_string = input()

print(removed(new_string, key_string))

По дате
По рейтингу
Аватар пользователя
Новичок

Можно так:
a = list(input())
b = list(input())
cnt = 0
while a!=b:
----b+=b[0]
----b.pop(0)
----cnt+=1
----if cnt>len(a):break
print(cnt if cnt<=len(a) else -1)

Аватар пользователя
Мастер

Только оптимизация