Код: Выделить всё
export function findAllPalindromes(usernames) {
const result = []
for (const username of usernames) {
if (isPalindrome(username)) {
result.push(username)
}
}
return result
}
function isPalindrome(username) {
const reversed = reverse(username)
const result = username.toLowerCase() === reversed.toLowerCase()
return result
}
function reverse(string) {
const characters = string.split("")
let left = 0
let right = characters.length - 1
while (left < right) {
const temp = characters[left]
characters[left] = characters[right]
characters[right] = temp
left++
right--
}
const reversed = characters.join("")
return reversed
}
Поскольку перевернутые имена пользователей не накапливаются в оперативной памяти и используются только промежуточно, не будет ли вместо этого пространственная сложность равна O(n)? И если в конце концов это O(n * k), то простое копирование элементов из входного массива в новый массив и его возврат тоже дают вам пространственную сложность O(n * k)?
Подробнее здесь: https://stackoverflow.com/questions/798 ... me-program
Мобильная версия