Решение задачи Номера автобусов с Acmp

Без пояснения   Просмотров: 32


Однажды Вася очень долго просидел на остановке, прежде чем дождался своего автобуса. Чтобы как-то занять время, он решил записывать на листочке государственные регистрационные номера проходящих мимо автобусов, следующих по другому маршруту, нежели нужен был Васе. При этом производилась запись лишь основного номера, без учета региональной принадлежности. В итоге Васе удалось записать N таких номеров.

Основная часть государственного регистрационного номера состоит из 6 символов: трех букв и трех цифр. Сначала идет буква, затем 3 цифры и еще 2 буквы заканчивают запись. В качестве цифр могут использоваться любые цифры от 0 до 9, а в качестве букв только прописные буквы, обозначения которых присутствуют как в английском, так и в русском алфавите, т.е. только следующие символы: A, B, C, E, H, K, M, O, P, T, X, Y. Например, «P204BT» - правильный номер, а «X182YZ» и «ABC216» - нет.

Ваша задача заключается в проверке правильности проделанной Васей работы. А именно, нужно определить, какие из номеров соответствуют принятому стандарту, а какие нет.

Код

#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str;
    int n;
    cin >> n;
    string t_char = "ABCEHKMOPTXY"; //АВСЕНКМОРТХУ
    string t_digit = "0123456789";
    for(int i = 0; i < n; ++i){
        cin >> str;
        if(str.size() != 6) {
          cout << "No" << endl;
          continue;
        }
        int pos = t_char.find(str[0]);
        if(pos == -1){
            cout << "No" << endl;
            continue;
        }
        pos = t_digit.find(str[1]);
        if(pos == -1){
            cout << "No" << endl;
            continue;
        }
        pos = t_digit.find(str[2]);
        if(pos == -1){
            cout << "No" << endl;
            continue;
        }
        pos = t_digit.find(str[3]);
        if(pos == -1){
            cout << "No" << endl;
            continue;
        }
        pos = t_char.find(str[4]);
        if(pos == -1){
            cout << "No" << endl;
            continue;
        }
        pos = t_char.find(str[5]);
        if(pos == -1){
            cout << "No" << endl;
            continue;
        }
        cout << "Yes" << endl;
    }
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться