華為OJ 字串加密

2021-08-02 20:50:06 字數 1255 閱讀 4560

華為oj:字串加密

加密規則輸入密匙key和明文(需要加密的字串);例如:密匙為trailblazers;

(1)對密匙去重(注:若出現大小寫的重複,也要去重,目的是為了保證得到完整的26位字母)去重後得到;

t  r  a  i   l   b  z  e  s 

(2)按照下面26位補齊密匙:

a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z

t   r  a    i    l   b   z    e  s  c   d   f   g   h   j    k   m   n   o p  q   u    v   w  x  y

得到的這個字串就可以作為明文的加密工具(注:個人認為補齊密匙時大小寫字母都可以,只要最後能保證明文本元的大小寫和密文保持一致即可)

(3)對明文進行加密:若對attack加密,在順序的字母表中找到該字元並對應到密匙的字元即為加密的密文(如紅體字型大小)

(即:比如a在順序字母表中為1,則找出密匙中1的字元為密文,最後得到的密文和明文大小寫保持一致)

#include

#include

#include

#include

using namespace std;

//定義去重函式和密匙函式

string unique(string str);

//輸入密匙和明文

string findmi(string str1, string str2);

int main()

//再次去重

unikey = unique(unikey);

final = findmi(unikey,putstr);

cout << final << endl;

return 0;

}//字串去重函式(包括大小寫去重,避免給出的密匙出現大小寫重複問題)

string unique(string str)}}

return str;

}//密匙生成函式

string findmi(string str1,string str2)}}

return result;

}( string類中提供了unique函式,但是該函式只能保證在乙個字串的相鄰位置去重的作用,如若不關心字串中字元的位置關係,可以先排序,再用unique函式去重。)

華為OJ 字串加密

題目描述 1 對輸入的字串進行加解密,並輸出。2加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。介面描述 實現介面,...

華為OJ(字串匹配)

題目 字串匹配 描述判斷短字串中的所有字元是否在長字串中全部出現 詳細描述 介面說明 原型 boolisallcharexist char pshortstring,char plongstring 輸入引數 char pshortstring 短字串 char plongstring 長字串 知識...

華為OJ(字串排序)

描述 編寫乙個程式,將輸入字串中的字元按如下規則排序。規則1 英文本母從a到 z排列,不區分大小寫。如,輸入 type 輸出 epty規則2 同乙個英文本母的大小寫同時存在時,按照輸入順序排列。如,輸入 baba 輸出 aabb規則3 非英文本母的其它字元保持原來的位置。如,輸入 by?e 輸出 b...