星空's Blog
星空's Blog
PAT-A1084 Broken Keyboard

原题

Broken Keyboard (20 分)

题解

这道题和
PAT-A1092 To Buy or Not to Buy
思路是一样的,仍然使用了平衡数组,略有不同的是
这题还要求记录发现顺序,且要进行重复过滤,遍历输出字符串,对平衡数组++,遍历输入字符串的过程中,如果某个记录值到达了临界值(-1),直接输出,不会影响到后续的重复字符。

代码

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

int main(void) {
    int t[128] = {0};
    string in,out;
    cin >> in >> out;

    for (int i = 0;i < out.length();i++) {
        int ch = out[i];
        if (ch >= 'a' && ch <= 'z') {
            out[i] = ch - 32;
        }
        t[out[i]]++;
    }
    for (int i = 0;i < in.length();i++) {
        int ch = in[i];
        if (ch >= 'a' && ch <= 'z') {
            in[i] = ch - 32;
        }
        if (t[in[i]]-- == 0) {
            cout << (char)in[i];
        }
    }
    cout << endl;
    return 0;
}
所有文章禁止转载。
代码仅供参考
为了对抗广告机器人,首次留言将会被审核
首页      算法学习      PAT-A      PAT-A1084 Broken Keyboard
https://secure.gravatar.com/avatar/271861a23dcdde929d3ee8cb8c04f854?s=256&d=monsterid&r=g

星空

文章作者

发表评论

textsms
account_circle
email

星空's Blog

PAT-A1084 Broken Keyboard
原题 Broken Keyboard (20 分) 题解 这道题和 PAT-A1092 To Buy or Not to Buy 思路是一样的,仍然使用了平衡数组,略有不同的是 这题还要求记录发现顺序,且要进行重复过滤,遍历输出字…
扫描二维码继续阅读
2019-08-28
分类
标签云