在人類歷史上,對(duì)信息保護(hù)的需求與對(duì)信息本身的需求一樣久遠(yuǎn)。第一個(gè)用于加密和解密文本的編碼方式是凱撒密碼。由于原始的凱撒密碼較簡單,較易被破解。隨著考古的進(jìn)展,人們發(fā)現(xiàn)了升級(jí)版的凱撒密碼II。
凱撒密碼II通過查詢動(dòng)態(tài)密碼表,把凱撒單詞加密成一些密文數(shù)字。
如果請(qǐng)你使用現(xiàn)有動(dòng)態(tài)密碼表,加密一些單詞。你要處理m個(gè)操作,操作分成兩種:
A string integer: 增加一條凱撒單詞string到凱撒密文數(shù)字integer的映射規(guī)則,如果先前已經(jīng)有關(guān)于這個(gè)string的規(guī)則,那么用該規(guī)則替換原規(guī)則。
Q string: 查詢單詞string所對(duì)應(yīng)的最新密文數(shù)字。
第一行一個(gè)整數(shù)m(1≤ m≤1,000,000),表示有m個(gè)操作。
單詞僅有長度不超過8位的小寫字母組成,單詞總數(shù)不超過100,000個(gè)。
密文數(shù)字的范圍是[0..1,000,000,000]。
對(duì)于每組查詢,輸出一行,表示根據(jù)密碼表中的規(guī)則,加密后的密文數(shù)字,如果在無法在密碼表中查找到該單詞,輸出 -1。
摘自百度百科