Проблема «добавления и удаления» на HackerRank — это задача кодирования, связанная с манипулированием строками в JavaScript. Цель — преобразовать одну строку (s
) в другую строку (t
) с помощью двух операций: добавления и удаления.
Вот пример решения, которое проходит тесты HackerRank:
function appendAndDelete(s, t, k) {
let i = 0;
// Find the length of the common prefix
while (s[i] === t[i] && i < s.length && i < t.length) {
i++;
}
const diff = (s.length - i) + (t.length - i);
// Check if it's possible to perform the operations
if (diff === k || diff < k && (diff - k) % 2 === 0 || s.length + t.length < k) {
return "Yes";
} else {
return "No";
}
}
// Example usage
console.log(appendAndDelete("hackerhappy", "hackerrank", 9)); // Output: Yes
console.log(appendAndDelete("aba", "aba", 7)); // Output: Yes
console.log(appendAndDelete("ashley", "ash", 2)); // Output: No
Объяснение:
Функция appendAndDelete
принимает три параметра: s
(начальная строка), t
(целевая строка), и k
(максимально допустимое количество операций). Сначала он находит длину общего префикса между s
и t
. Затем он вычисляет общее количество операций, необходимых для преобразования s
в t
. Наконец, он проверяет, возможно ли количество операций в заданном пределе k
, и возвращает «Да» или «Нет» соответственно.