PAT 1084. Broken Keyboard

来源:互联网 发布:漫画王ios软件 编辑:程序博客网 时间:2024/05/02 11:24

1. 大小写不敏感,先将输入输出都转为大写

2. 两个指针(i, j)分别指向输入和输出串的头,用另一个数组(already)记录字符是否已经被输出过。当i, j指向的内容相同时都移近指针(++i, ++j), 不等则只移近i.


代码:

#include <vector>#include <string>#include <iostream>using namespace std;inline void capitalize(string& s){    for (size_t i = 0; i < s.size(); ++ i)    {        if (s[i]>='a' && s[i]<='z')        {          s[i] = s[i] - 'a' + 'A';        }    }}int main(){    string s1, s2;    vector<bool> already(1000, false);    cin >> s1 >> s2;    capitalize( s1 );    capitalize( s2 );    for (size_t i=0, j=0; i<s1.size(); ++ i)    {        if ( s1[i] != s2[j] )        {            if (already[s1[i]] == false)            {                already[s1[i]] = true;                cout << s1[i];            }        } else        {            ++ j;        }    }    return 0;}


0 0