PAT 甲级 刷题日记|A 1112 Stucked Keybo

2021-08-31  本文已影响0人  九除以三还是三哦

单词积累

stucked 被卡住的

思路

遍历对每个位置进行标记判断,如果出现不符合条件的情况,就进行标记,后续不可更改;如果出现符合条件的情况,就进行标记,后续可以更改。

坏键可以为a-z 0-9,_其中的任意一种

代码

#include <bits/stdc++.h>
using namespace std;

string test;
int k;
int flag[1000];

int main() {
    cin>>k>>test;
    for (int i = 0; i < test.size(); i++) {
        int fuhe = 1;
        for (int j = i + 1; j < i + k; j++) {
            if (test[i] != test[j]) {
                fuhe = 0;
                break;
            }
        }
        if (fuhe) {
            if (flag[test[i]] == 0) {
                flag[test[i]] = 1;
            }
            i += k - 1;
        } else {
            flag[test[i]] = 2;
        }
    }
    for (int i = 0; i < test.size(); i++) {
        if (flag[test[i]] == 1) {
            cout<<test[i];
            flag[test[i]] = 3;
        }
    }
    cout<<endl;
    for (int i = 0; i < test.size(); i++) {
        cout<<test[i];
        if (flag[test[i]] == 3) {
            i += k - 1;
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读