1. 程式人生 > >PAT Advanced 1023 Have Fun with Numbers

PAT Advanced 1023 Have Fun with Numbers

color map class pat bsp auto clu cin code

#include <iostream>
#include <string>
#include <map>

using namespace std;

void prob1023()
{
    string num;
    cin >> num;
    string num0 = num;
    int flag = 0;
    for (auto iter = num.rbegin(); iter != num.rend(); ++iter)
    {
        int r = *iter - 0‘ + *iter - 0‘ + flag;
        if (r > 9)
        {
            flag = 1;
            r = r - 10;
        }
        else
        {
            flag = 0;
        }
        *iter = r + 0;
    }
    if (flag == 1)
    {
        num.insert(num.begin(), 1);
    }
    map<char, int> record0;
    map<char, int> record;
    for (auto iter = num0.begin(); iter != num0.end(); ++iter)
    {
        if (record0.find(*iter) == record0.end())
        {
            record0[*iter] = 1;
        }
        else
        {
            ++record0[*iter];
        }
    }
    for (auto iter = num.begin(); iter != num.end(); ++iter)
    {
        if (record.find(*iter) == record.end())
        {
            record[*iter] = 1;
        }
        else
        {
            ++record[*iter];
        }
    }
    if (record0 == record)
    {
        cout << "Yes\n";
    }
    else
    {
        cout << "No\n";
    }
    cout << num;
}

PAT Advanced 1023 Have Fun with Numbers