2013-03-23 2 views
-4

Мне нужно написать шифр замещения для цифр 0,1,2,3, ..., 9 заменяет каждую цифру в 0,1,2,3, ..., 9. Он может быть представлен как 10-значная строка, определяющая, как заменяется каждая цифра в 0,1,2,3, ..., 9. Например, десятизначная строка «3941068257» указывает шифр замещения, в котором цифра 0 заменяется цифрой 3, 1 с 9, 2 с 4 и так далее. Чтобы зашифровать неотрицательное целое число, замените каждую из его цифр цифрой, указанной ключом шифрования. Реализуйте функцию cipher(), которая принимает, как и в случае ввода 10-значного строкового ключа, а также цифру и цифровую строку (т. Е. Чистый текст, подлежащий шифрованию) и возвращает шифрование чистого текста.Python, шифр замещения

>>>encrypt('3491068257', '132') 
'914' 
>>>encrypt('3491068257', '111') 
'999' 

Спасибо за вашу помощь :)

+0

ли вы попробовать что-нибудь это не сработало? –

+0

В чем вопрос? И что ты пробовал? – FatalError

+0

Вам нужно полное решение? – jamylak

ответ

0

Я хотел бы видеть попытку из ОП писал, но в любом случае

def encrypt(key,s): 
    return ''.join(key[int(c)] for c in s) 

Это использует каждый «ключ» в строке, и использует это для поиска соответствующего символа.

0

В функции шифрования вы можете создать карту поиска с использованием первого параметра строки. Затем пройти через каждый символ во второй строке параметров и использовать эту карту для замещения и создать и вернуть новую строку

1
from string import maketrans 

zero_through_nine = "".join(str(i) for i in range(10)) 
out_tab = "3491068257" 
trantab = maketrans(zero_through_nine,out_tab) 
print "111".translate(trantab) 

надеюсь, вы посмотрите на него, чтобы понять это ....

Смежные вопросы