Решение задачи Перестановка с Acmp

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


Если Вы читали Гарри Поттера, то знаете, что повелитель зла, Лорд Волдеморт создал свое имя путем перестановки букв в своем настоящем имени. Так из имени «Tom Marvolo Riddle» он получил «I am Lord Voldemort».

Напишите программу, которая проверяет, можно ли получить из одного имени другое путем перестановки его букв. При этом регистром букв нужно пренебречь.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    string str,str2;
    cin >> str >> str2;
    if(str.size()!=str2.size()){
        cout << "No";
        return 0;
    }
    int pos,pos1,pos2;
    while(str2.size()){
        pos = str.find(str2[0]);
        pos1 = str.find(str2[0] + 32);
        pos2 = str.find(str2[0] - 32);
        if(pos + 1)
            str.erase(pos,1);
        else
            if(pos1 + 1)
                str.erase(pos1,1);
        else
            if(pos2 + 1)
                str.erase(pos2,1);
        else{
            cout << "No";
            return 0;
            }
 
        str2.erase(0,1);
    }
 
 
    cout << endl;
    for(int i = 0; i < str.size(); ++i)
        cout << str[i];
    cout << endl;
    for(int i = 0; i < str2.size(); ++i)
        cout << str2[i];
 
    if(str.size() > 0 || str2.size() > 0)
        cout << "No";
    else
        cout << "Yes";
 
    return 0;
}

         

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



Комментарии

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