Решение задачи Письмо от Поликарпа с Codeforces

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


Мефодий получил от своего друга Поликарпа письмо по электронной почте. Однако у Поликарпа сломалась клавиатура: на его клавиатуре при однократном нажатии на клавишу соответствующий символ может появиться более одного раза (в то время, как на обычной клавиатуре однократное нажатие приводит к появлению ровно одного символа).

Например, в результате набора слова «hello» следующие слова могли оказаться набранными: «hello», «hhhhello», «hheeeellllooo», но следующие слова не могли оказаться набранными: «hell», «helo», «hhllllooo».

Обратите внимание, что при нажатии на клавишу символ обязательно появляется (возможно, более одного раза). Клавиатура сломана недетерменированным образом, то есть нажатие на одну и ту же клавишу в разные моменты времени может приводить к разному количеству появившихся букв.

Для каждого слова в письме Мефодий предположил, какое на самом деле слово хотел написать Поликарп, но он не уверен, что понял написанное правильно, поэтому он просит вас ему помочь.

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

Код

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n;
	cin >> n;
	while(n--)
	{
		string a,b;
		cin >> a >> b;
		int i,j;
		for(i=0,j=0;b[j];j++)
		{
			if(a[i]==b[j])
				i++;
			else if(b[j]!=b[j-1])
				break;
		}
		if(b[j]=='\0' && a[i]=='\0')
			cout << "YES" << endl;
		else 
			cout << "NO" << endl;
	}
	return 0;
}

         

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



Комментарии

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