如何根据给定算法解密字符串?
解密或解密字符串是用于保护机密和敏感数据免受黑客攻击的过程。它将加密数据或文本转换为其原始形式。加密是将纯文本转换为不可读且难以理解的密文格式的过程,以便黑客无法理解它。这些过程是相互关联的,并且涉及各种用于处理的算法。我们将根据以下算法解密字符串。
如果字符串长度为奇数:对于奇数索引值,从字符串的末尾追加字母;对于偶数索引值,从输入加密字符串的开头追加字母。
如果字符串长度为偶数:对于奇数索引值,从字符串的开头追加字母;对于偶数索引值,从输入加密字符串的末尾追加字母。
演示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()函数来反转结果字符串实现了该方法。教程中解释了一些演示,以详细说明任务的含义和解决方案。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP