Как проверить, является ли слово палиндромом?

Для проверки, является ли слово палиндромом, необходимо сравнить его с обратной ему последовательностью символов.

В языке программирования Swift можно использовать несколько подходов.

Первый подход - использование встроенных возможностей языка. В Swift есть метод reverse(), который позволяет получить обратную последовательность символов. Этот метод доступен для строк:

func isPalindrome(_ word: String) -> Bool {
    let reversedWord = String(word.reversed())
    return word == reversedWord
}

let word = "radar"
let isPalindrome = isPalindrome(word)
print(isPalindrome) // Вывод: true

Второй подход - использование циклов и индексов:

func isPalindrome(_ word: String) -> Bool {
    let count = word.count
    let middleIndex = count / 2
    
    for i in 0..<middleIndex {
        let start = word.index(word.startIndex, offsetBy: i)
        let end = word.index(word.endIndex, offsetBy: -i - 1)
        
        if word[start] != word[end] {
            return false
        }
    }
    
    return true
}

let word = "radar"
let isPalindrome = isPalindrome(word)
print(isPalindrome) // Вывод: true

Третий подход - использование рекурсии и рекурсивного сравнения символов:

func isPalindrome(_ word: String) -> Bool {
    let count = word.count
    
    if count <= 1 {
        return true
    } else {
        let start = word.startIndex
        let end = word.index(before: word.endIndex)
        
        if word[start] == word[end] {
            let range = word.index(after: start)..<end
            let subWord = word[range]
            return isPalindrome(String(subWord))
        } else {
            return false
        }
    }
}

let word = "radar"
let isPalindrome = isPalindrome(word)
print(isPalindrome) // Вывод: true

Независимо от выбранного подхода, результат будет одинаковым. В результате выполнения функции возвращается значение true, если слово является палиндромом, и значение false - если нет.