На собеседовании вам нужно будет написать алгоритм, чтобы проверить, можно ли сформировать данную строку, S, из двух других строк, части1 и части 2. Ограничение состоит в том, что персонажи в Part1 и Part2 находятся в том же порядке, что и в s. Интервьюер дает вам следующий пример и говорит вам выяснить остальные из данных тестовых случаев. >
Код: Выделить всё
function isMerge(s, part1, part2) {
let part1Pointer = 0;
let part2Pointer = 0;
for (let i = 0; i < s.length; i++) {
if (s[i] === part1[part1Pointer]) {
part1Pointer++;
} else if (s[i] === part2[part2Pointer]) {
part2Pointer++;
} else {
return false;
}
}
return part1Pointer + part2Pointer === s.length;
}И вот результат, когда я не удался:
can handle som basic cases
for s = "xcyc"
part1 = "xc"
part2 = "cy"
: expected false to equal true
< /code>
Я понятия не имею, почему это происходит.
Любая помощь будет высоко оценена. < /p>
Я искал ответы на Codewars /Cersed String Checker и попробовал рекурсивный подход, который работает.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... javascript
Мобильная версия