牛客编程巅峰赛S1第5场 - 青铜&白银 A.凯撒密码(字符串)

  • 题意:给你一个加密的字符串,以及偏移量,求对应的明文.

  • 题解:根据样例,不难看出模板串是:\(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\),然后我们去遍历密文的每一位,减去偏移量再取个模就行.

  • 代码:

    class Solution {
    public:
        /**
         * 解密密文
         * @param str string字符串 密文
         * @param d int整型 偏移量
         * @return string字符串
         */
        string decode(string str, int d) {
            const string tmp="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
             for(int i=0;i<str.size();++i){
              string c;
              c.push_back(str[i]);
              int p=tmp.find(c);
              str[i]=tmp[(p-d+62)%62];
        }
            return str;
        }
    };
    

猜你喜欢

转载自www.cnblogs.com/lr599909928/p/13371224.html