@LordOftheCode

Как получить подстроку в этой задаче python?

Задача:
Вы являетесь шифратором. И к вам приходят сообщения, которые вы должны проверить на правильность шифра. Ваш шифр построен следующим образом: 
1) есть изначальная строка (например, «программирование»);
2) отсекается подстрока начиная с произвольного символа (например, поделим слово программирование на «прогр» и «аммирование»);
3) отсеченная часть строки является началом новой зашифрованной строки (зашифрованная строка будет начинаться с «аммирование»);
4) оставшаяся подстрока в обратном порядке приписывается к зашифрованной строке (то есть «аммирование» + «ргорп». И получаем зашифрованное слово: «аммированиергорп»).
Теперь, ваша задача определить был ли применен данный шифр к двум входным строкам. 
Пример входных данных 1: 
"программирование"
"аммированиергорп"

Пример выходных данных 1: 
YES
Пример входных данных 2: 
"программирование"
"аммированиепрогр"

Пример выходных данных 2: 
NO


Как можно получить подстроку? Я без понятия, была идея получить длину строки разделить ее на 2 и получившийся ответ разделить на строку и получить так подстроку, но в данном моменте так не прокатит, так как там берется подстрока не как половина слова.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 3
Zoominger
@Zoominger Куратор тега Python
System Integrator
Просто напишите программу, которая будет введённое слово преобразовывать по описанным правилам и проверяйте, идентична ли она зашифрованному варианту, введённому пользователем.
Ответ написан
Комментировать
@Dzhigit
Начинающий прогер
Это то, что вам нужно?

from random import randint

string = 'программирование'
random_symbol = randint(0, (len(string)-1))
substring = ''.join([string[i] for i in range(random_symbol, len(string))])
string = string.replace(substring, '')
print(string, substring)
Ответ написан
Комментировать
@alexbprofit
Junior SE
x = 'lorenipsum'
y = 'nipsumerol'
z = y[::-1]
t = ''.join([x[i] for i in range(len(x)) if x[i] == z[i]])
s = ''.join([x[i] for i in range(len(t), len(x)) if x[i] == y[i - len(t)]])
if t + s == x:
  print("Yes")
else:
  print("No")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы