Решение задачи Удаляй слева с Codeforces

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


Заданы две строки s и t. За один ход можно выбрать произвольную из двух строк и удалить её первый (самый левый) символ. При этом длина строки уменьшается на 1.

Например:

применив ход к строке «where», в результате получится строка «here»,
применив ход к строке «a», в результате получится пустая строка «».
Требуется сделать две строки равными, выполнив наименьшее количество ходов, применяя каждый раз ход к любой из двух строк. Это допустимо, что в итоге обе строки окажутся равны пустой строке и равны между собой. В этом случае, очевидно, ответ — это сумма длин заданных строк.

Напишите программу, которая найдет минимальное количество ходов, чтобы сделать две заданные строки s и t равными.

Код

#include <bits/stdc++.h>

int main(void)
{
	std::string a,b;
	std::cin>>a>>b;
	int i = (int)a.size()-1;
	int j = (int)b.size()-1;
	while((i != -1) && (j != -1) && (a[i] == b[j]))
	{
		i--;
		j--;
	}	
	std::cout<<i+j+2<<"\n";
	return 0;
}

         

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



Комментарии

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