CS106L で STL アルゴリズムに関する演習を行っています。質問の 1 つは、random_shuffle を使用した置換暗号化について尋ねます。
問題は、random_shuffle を使用して、ソース文字列を受け取り、ランダムな単アルファベット置換暗号で暗号化する関数 MonoalphabeticSubstitutionEncrypt を実装することです。
つまり、最初に「AB..XYZ」があり、random_shuffle を AZ に呼び出し、「KVDQ...MSB」のようなものを生成してから、元の文字列を暗号化するマッピングを行います。
マッピングを使用して実行できますが、それらの STL アルゴリズムのみを使用して実行する必要があります。
誰にもアイデアがありますか?ありがとうございました!
私はこのようにしていますが、STLアルゴリズムの力を使っていないようです
string MonoSubsitutionEncrypt(string line){
string original = "abcdefghijklmnopqrstuvwxyz";
string excrypt = original;
random_shuffle(encrypt.begin(), encrypt.end());
map<char, char> m;
for (int i = 0;i < original.length(); i++)
m.insert(make_pair(original[i],encrypt[i]));
string result;
for (int i = 0; i < line.length(); i++)
result += m[line[i]];
return result;
}