華為OJ 字串加解密

2021-07-14 20:02:23 字數 1332 閱讀 9619

題目描述

1、對輸入的字串進行加解密,並輸出。

2加密方法為:

當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b;字母z時則替換為a;

當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0;

其他字元不做變化。

3、解密方法為加密的逆過程。

介面描述:

實現介面,每個介面實現1個基本操作:

void encrypt (char aucpassword, char aucresult):在該函式中實現字串加密並輸出

說明:1、字串以\0結尾。

2、字串最長100個字元。

int unencrypt (char result, char password):在該函式中實現字串解密並輸出

說明:1、字串以\0結尾。

2、字串最長100個字元。

知識點字串

執行時間限制

10m記憶體限制

128輸入

輸入說明

輸入一串要加密的密碼

輸入一串加過密的密碼

輸出輸出說明

輸出加密後的字元

輸出解密後的字元

樣例輸入

abcdefg

bcdefgh

樣例輸出

bcdefgh

abcdefg

思路:介面函式的編寫,對字串遍歷,分情況加解密,關鍵點在於變換公式:字母要變換大小寫,並且加密用後乙個字母替換,解密用前乙個字母替換,注意首尾字母的替換

加密公式:

s[i]是小寫字母:(s[i] - 'a' + 1) % 26 + 'a'

s[i]是大寫字母:(s[i] - 'a' + 1) % 26 + 'a'

s[i]是數字:(s[i] - '0' + 1) % 10 + '0'

解密公式:

s[i]是小寫字母:(s[i] - 'a' - 1 + 26) % 26 + 'a'

s[i]是大寫字母:(s[i] - 'a' - 1 + 26) % 26 + 'a'

s[i]是數字:(s[i] - '0' - 1 + 10) % 10 + '0'

源**:

#include 

#include 

using namespace std;  

void

encrypt(string psw, string& res)  

}  void

unencrypt(string psw, string& res)  

}  void

main() 

華為oj 字串加解密

對英文本元,我們其實可以把它看成26進製,即對應0 25,這樣在加密的時候把算出的值對26取餘就可以了,但是要注意一下大小寫字母變換,舉個例子 小寫字母c,那麼c對應的值是 c a 2,加密時,2 1 a 就轉換成了加密後大寫字母,d 但是到 z 會出現問題,轉換不到 a 所以其對26取餘。對於解密...

華為OJ 字串加解密

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

華為OJ基礎篇 字串加解密

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