Для проверки, является ли слово палиндромом, необходимо сравнить его с обратной ему последовательностью символов.
В языке программирования 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 - если нет.