Задача: 917. Reverse Only Letters
Сложность: easy
Задав строку s, переверните ее в соответствии со следующими правилами: все символы, не являющиеся английскими буквами, остаются в той же позиции. Все английские буквы (строчные или прописные) должны быть перевернуты. Верните s после перевертывания.
Пример:
Input: s = "ab-cd"
Output: "dc-ba"
👨💻 Алгоритм:
1⃣Создать массив для хранения только английских букв из строки s.
2⃣Перевернуть массив с английскими буквами.
Пройти по строке s и заменить каждую английскую букву на соответствующую из перевернутого массива.
3⃣Вернуть результат.
😎 Решение:
var reverseOnlyLetters = function(s) {
const letters = s.split('').filter(c => /[a-zA-Z]/.test(c));
letters.reverse();
let idx = 0;
return s.split('').map(c => {
if (/[a-zA-Z]/.test(c)) {
return letters[idx++];
} else {
return c;
}
}).join('');
};
Ставь 👍 и забирай 📚 Базу знаний
Сложность: easy
Задав строку s, переверните ее в соответствии со следующими правилами: все символы, не являющиеся английскими буквами, остаются в той же позиции. Все английские буквы (строчные или прописные) должны быть перевернуты. Верните s после перевертывания.
Пример:
Input: s = "ab-cd"
Output: "dc-ba"
👨💻 Алгоритм:
1⃣Создать массив для хранения только английских букв из строки s.
2⃣Перевернуть массив с английскими буквами.
Пройти по строке s и заменить каждую английскую букву на соответствующую из перевернутого массива.
3⃣Вернуть результат.
😎 Решение:
var reverseOnlyLetters = function(s) {
const letters = s.split('').filter(c => /[a-zA-Z]/.test(c));
letters.reverse();
let idx = 0;
return s.split('').map(c => {
if (/[a-zA-Z]/.test(c)) {
return letters[idx++];
} else {
return c;
}
}).join('');
};
Ставь 👍 и забирай 📚 Базу знаний