Строка называется дочерней по отношению к другой строке, если она может быть сформирована путем удаления 0 или более символов из другой строки. Учитывая две строки одинаковой длины, какая самая длинная строка может быть построена так, что она является дочерней для обоих?
Например, у ABCD и ABDC есть два ребенка с максимальной длиной 3, ABC и ABD. Их можно сформировать, исключив D или C из обеих строк. Обратите внимание, что мы не будем считать ABCD общим ребенком, потому что мы не можем переставлять символы и ABCD ABDC.
commonChild имеет следующие параметры:
s1, s2: две строки одинаковой длины
Вывести длину самой длинной строки, которая является дочерней для обеих строк.
Пример ввода
HARRY
SALLY
Пример вывода
2
Я написал эту следующую функцию с использованием векторных функций.
int commonChild(string s1, string s2) {
vector <char> v1; vector <char> v2; vector <char> v3;
for(int i=0;i<s1.size();i++)
{
v1.push_back(s1[i]);
}
for(int j=0;j<s2.size();j++)
{
v2.push_back(s2[j]);
}
set_intersection(v1.begin(),v1.end(),v2.begin(), v2.end(), v3.begin());
return(v3.size());
}
это не показывает ошибки. но выход всегда равен 0. что идет не так?