Я хотел бы проверить, может ли слово2 генерироваться из слова1, если я объединю 2 смежных дублированных символа в слове 1.
Например:
word1 = 'peete'
word2 = 'pete' //OK, because merging ee into e in word1 produces word2
word1 = 'peetee'
word2 = 'peete'
word1 = 'meet'
word2 = 'met'
У меня пока что есть, но происходит сбой при некоторых входах:
let checkMerge = (word1, word2) => {
let charArr = word1.split('');
let resultArr = [];
let needToMerge = '';
for (let i = 0; i < charArr.length; ++i) {
if (charArr[i] == charArr[i + 1]) continue
resultArr.push(charArr[i]);
}
let resultWord = resultArr.join('');
if (resultWord == word2) {
console.log(`JOIN ${needToMerge}`);
} else {
console.log(`something's wrong`)
}
}
checkMerge('peete', 'pete'); //correct
checkMerge('peetee', 'peete'); //fails
checkMerge('meet', 'met'); //correct
Мне также нужно получить персонажа, которого мне нужно объединить (let needToMerge = '';
), но я не могу понять это правильно. Таким образом, окончательный результат должен быть таким: 'JOIN char'
Что мне делать по-другому? Спасибо.
РЕДАКТИРОВАТЬ:
еще несколько уточнений: function checkMerge
занимает два слова, word1
и word2
. Я должен проверить, можно ли получить word2
из word1
не более чем одним слиянием. word2
не может быть изменено, только word1
одним слиянием. Функция должна возвращать "JOIN c"
, если word2
может быть получено из word1
, путем слияния двух соседних символов в word1
(выполняется ровно одно слияние).
Например: учитывая word1 = 'peetee'
и word2 = 'peete'
, функция должна возвращать 'JOIN e
', поскольку, если мы объединяем последние два символа (ee) word1
, мы получаем 'peete', которое равно word2
.
с учетом word1 = 'peetee'
и word2 = 'petee'
, функция должна возвращать 'JOIN e
', поскольку, если мы объединяем первые дублированные символы (ee) word1
, мы получаем 'petee', равное word2
.