如何根據給定演算法解密字串?
解密或解密字串是用於保護機密和敏感資料免受駭客攻擊的過程。它將加密資料或文字轉換為其原始形式。加密是將純文字轉換為不可讀且難以理解的密文格式的過程,以便駭客無法理解它。這些過程是相互關聯的,並且涉及各種用於處理的演算法。我們將根據以下演算法解密字串。
如果字串長度為奇數:對於奇數索引值,從字串的末尾追加字母;對於偶數索引值,從輸入加密字串的開頭追加字母。
如果字串長度為偶數:對於奇數索引值,從字串的開頭追加字母;對於偶數索引值,從輸入加密字串的末尾追加字母。
演示1
Input = Encrypted string = "olhel" Output = hello
解釋
首先找到字串的長度來解密輸入字串。以相反的順序新增字母。字串長度為5(奇數),因此,對於奇數索引值,我們從後面新增字母,對於偶數索引值,我們按照以下方式從前面追加字母。每次新增字母后,移到下一個字母。
索引值為1的字母是“o”。將“o”新增到結果字串中。結果是“o”。
索引值為2的字母是“l”。將“l”新增到結果字串中。結果是“lo”。
索引值為3的字母是“h”。將“l”新增到結果字串中。結果是“llo”。
索引值為4的字母是“e”。將“e”新增到結果字串中。結果是“ello”。
索引值為5的字母是“l”。將“h”新增到結果字串中。結果是“hello”。
演示2
Input = Encrypted string = "flie" Output = life
解釋
使用該演算法解密輸入字串,首先找到字串的長度。以相反的順序新增字母。字串長度為4(偶數),因此,對於奇數索引值,我們從前面新增字母,對於偶數索引值,按照以下方式從後面追加字母。每次新增字母后,移到下一個字母。
索引值為1的字母是“f”。將“e”新增到結果字串中。結果是“e”。
索引值為2的字母是“l”。將“f”新增到結果字串中。結果是“fe”。
索引值為3的字母是“i”。將“i”新增到結果字串中。結果是“ife”。
索引值為4的字母是“e”。將“l”新增到結果字串中。結果是“life”。
C++庫函式
length() − 這是字串類庫函式,在<string>標頭檔案中定義。它以位元組形式返回輸入字串的長度。它計算字串的總字元數。
string_name.length();
size() − 這是C++庫中預定義的函式,它返回輸入字串的長度。
string_name.size();
reverse() − 它在C++標準庫中定義。它透過考慮字串的起始和結束位置來反轉字串的順序。它需要兩個引數:起始索引值和結束索引值。
reverse(string_name.begin(), string_name.end());
演算法
獲取使用上述加密規則加密的加密字串。
以相反的順序將字母插入結果字串。
使用'for'迴圈遍歷字串。
使用length()函式查詢字串的長度。
如果輸入字串的長度為偶數:對於奇數位置的值,從前面新增字元;對於偶數位置的值,從輸入加密字串的後面新增字元。
如果輸入字串的長度為奇數:對於奇數位置的值,從輸入字串的後面新增字元;對於偶數位置的值,從加密字串的前面新增字元。
列印解密後的結果字串。
示例
透過獲取字串作為輸入來實現本教程中的問題陳述。透過考慮上述規則來解密輸入字串。反轉最終字串以獲得所需輸出。
#include <bits/stdc++.h> using namespace std; string decryptedString(string str, int len) { string result = ""; if (len % 2) { int cntVar = 0; int start = 0, last = len - 1; while (result.size() != len) { if (cntVar % 2 == 0) result += str[start++]; else result += str[last--]; cntVar++; } } else { int cntVar = 0; int start = 0, last = len - 1; while (result.size() != len) { if (cntVar % 2 == 0) result += str[last--]; else result += str[start++]; cntVar++; } } reverse(result.begin(), result.end()); return result; } int main() { string str = "flie"; int len = str.length(); cout << "The decrypt string according to the following algorithm is : " << decryptedString(str, len); return 0; }
輸出
The decrypt string according to the following algorithm is : life
結論
在本教程結束時,我們使用演算法來解密字串。定義解密字串的規則或演算法。我們使用C++和reverse()函式來反轉結果字串實現了該方法。教程中解釋了一些演示,以詳細說明任務的含義和解決方案。