Палиндром Swift CCC J3 - PullRequest
       6

Палиндром Swift CCC J3

0 голосов
/ 13 ноября 2018

Я пытаюсь выяснить, как найти палиндром по заданному слову. то есть - банан палиндром был бы ананой. У меня есть функция, которая позволяет мне проверить, является ли все слово одним, но я не знаю, как проверить в слове, является ли какая-либо его часть палиндромом. Любые идеи о том, что может это исправить?

var word = "anaana"


 func isPali(word:String) -> Bool {

    let characters = Array(word)
    var currentIndex = 0

    while currentIndex < characters.count / 2 {
        if characters[currentIndex] != characters[characters.count - currentIndex - 1] {
            return false
        }
        currentIndex += 1
    }

    return true
}

if isPali(word: word) {
print(word.count)
}else{
print("Not a Pailidrome")
}

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете попробовать ниже functions.

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


func findPalindrome(in word: String) -> String? {
    var subString: String = word
    for i in 0...word.count {
        guard isPalindrome(subString) == false else { return subString }
        subString = word
        subString.remove(at: word.index(word.startIndex, offsetBy: i))
    }
    return nil
}

isPalindrome просто проверит, является ли слово палиндромом. Функция findPalindrome проверит все subStrings в данном word, есть ли палиндром и, если он существует, будет возвращено string.

...