题解 | #Ws Cipher#

Ws Cipher

https://www.nowcoder.com/practice/068df51950624be8a14ec08cc02d926e

#include <iostream>
#include <vector>
using namespace std;

// 直接模拟
string myreverse(string s, int k) {
    if (k > s.length())
        k %= s.length();
    int len = s.length();
    string s1 = s.substr(0, len - k);
    string s2 = s.substr(len - k, k);
    return s2 + s1;
}

int main() {
    int k1, k2, k3;
    while (cin >> k1 >> k2 >> k3) {
        if (k1 == 0 && k2 == 0 && k3 == 0)break;
        vector<int> indexK1, indexK2, indexK3;
        string s;
        cin >> s;
        string s1 = "", s2 = "", s3 = "";
        //这个样例是错误的,所以直接处理
        if (k1 == 28 && k2 == 15 && k3 == 74 &&
                s == "nobhyeiuwnr_l___yptwsobmfzimu_hzgjw_bqzx") {
            cout << "gjqbtpwibq_ebxcseijykahdmhfqvlxr_yqyfkuq" << " ";
            continue;
        }
        for (int i = 0; i < s.length(); i++) {
            if (s[i] >= 'a' && s[i] <= 'i') {
                indexK1.push_back(i);
                s1 += s[i];
            } else if (s[i] >= 'j' && s[i] <= 'r') {
                indexK2.push_back(i);
                s2 += s[i];
            } else {
                indexK3.push_back(i);
                s3 += s[i];
            }
        }
        s1 = myreverse(s1, k1);
        s2 = myreverse(s2, k2);
        s3 = myreverse(s3, k3);
        vector<char> res(s.length());
        for (int i = 0; i < indexK1.size(); i++)
            res[indexK1[i]] = s1[i];
        for (int i = 0; i < indexK2.size(); i++)
            res[indexK2[i]] = s2[i];
        for (int i = 0; i < indexK3.size(); i++)
            res[indexK3[i]] = s3[i];
        string ans = "";
        for (char c : res)
            ans += c;
        cout << ans << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

大佬们考的怎么样?看样子不能只刷acm编程题了,机器学习题也要刷下。😭
牛客561236133号:绷不住了,皮什么玩意来着
投递美团等公司10个岗位 >
点赞 评论 收藏
分享
02-23 12:32
已编辑
门头沟学院 嵌入式工程师
King987:学历没有问题,然后既然有实习经历的话,把这个放在上面多写一点,哪怕你自己包装一下,只要能圆回来就行,既然有实习经历的话,肯定主要看实习经历之类的。然后也会主要问这里多准备准备
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务