我喜欢 Swift 中的许多功能,但使用操作字符串仍然是个大麻烦。
func checkPalindrome(word: String) -> Bool {
print(word)
if word == "" {
return true
} else {
if word.characters.first == word.characters.last {
return checkPalindrome(word.substringWithRange(word.startIndex.successor() ..< word.endIndex.predecessor()))
} else {
return false
}
}
}
只要字符串的长度是奇数,这段代码就会失败。当然我可以做到,所以 block 的第一行是 if word.characters.count < 2
,但是 Swift 中有没有一种方法可以轻松获取子字符串并进行检查?
更新 我喜欢很多建议,但我想最初的问题可能有点误导,因为这是一个关于 String 的问题,而不是获得函数的正确结果。
例如,在 Python 中,checkPalindrome(word[1:-1]) 可以很好地用于递归定义,而 Swift 代码则不那么优雅,因为它需要其他附加功能。
最佳答案
return word == String(word.reversed())
关于swift - 如何使用递归定义在 Swift 中检查回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34489497/