Сложность: easy
Задав строку s, переверните ее в соответствии со следующими правилами: все символы, не являющиеся английскими буквами, остаются в той же позиции. Все английские буквы (строчные или прописные) должны быть перевернуты. Верните s после перевертывания.
Пример:
Input: s = "ab-cd"
Output: "dc-ba"
👨💻 Алгоритм:
1⃣Создать массив для хранения только английских букв из строки s.
2⃣Перевернуть массив с английскими буквами.
Пройти по строке s и заменить каждую английскую букву на соответствующую из перевернутого массива.
3⃣Вернуть результат.
😎 Решение:
class Solution {
public:
string reverseOnlyLetters(string s) {
vector<char> letters;
for (char c : s) {
if (isalpha(c)) {
letters.push_back(c);
}
}
reverse(letters.begin(), letters.end());
string result;
int idx = 0;
for (char c : s) {
if (isalpha(c)) {
result += letters[idx++];
} else {
result += c;
}
}
return result;
}
};Ставь 👍 и забирай 📚 Базу знаний