我正在CS106L中进行有关STL算法的练习,其中一个问题是使用random_shuffle询问替换加密。使用STL的单字母排序加密使用STL,cs106l
问题是 使用random_shuffle实现一个函数MonoalphabeticSubstitutionEncrypt接受源字符串并使用随机单字母替代密码对其进行加密。
这意味着一开始我有 “AB..XYZ”,只是叫random_shuffle至A-Z 并产生类似“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;
}
+1我喜欢给你任务的教授。很高兴听到教授们正在推广STL算法:) – Mahesh 2012-07-25 22:45:20
通常人们“忘记”作业标签。 :) – Wug 2012-07-25 22:47:01