Моя функция для проверки палиндрома
Привет! Я расскажу тебе о своей функции, которая позволяет проверить, является ли заданная строка палиндромом. Это очень полезно, когда нам нужно узнать, читается ли строка одинаково слева направо и справа налево. Вот что я сделал⁚
go
func IsPalindrome(input string) bool {
// Удаляем из строки все символы, кроме букв и цифр, а также приводим все символы к нижнему регистру
normalized ⁚ ″″
for _, ch ⁚ range input {
if unicode.IsLetter(ch) || unicode.IsDigit(ch) {
normalized strings.ToLower(string(ch))
}
}
// Проверяем, является ли полученная строка палиндромом
runes ⁚ []rune(normalized)
for i, j ⁚ 0, len(runes)-1; i < j; i, j i 1, j-1 {
if runes[i] ! runes[j] {
return false
}
}
return true
}
Как ты можешь видеть, я создал функцию IsPalindrome
, которая принимает строку в качестве аргумента. Сначала мы удаляем все символы, кроме букв и цифр, а также приводим все символы к нижнему регистру. Затем мы проверяем, является ли полученная строка палиндромом путем сравнения символов в начале и конце строки.
Теперь давай попробуем вызвать эту функцию с примером из задания⁚
go
func main {
input ⁚ ″А роза упала на лапу Азора″
result ⁚ IsPalindrome(input)
fmt.Println(result) // Выведет⁚ true
}
И вот что я получил – функция вернула true
, что означает, что строка «А роза упала на лапу Азора» является палиндромом.
Я очень рад, что моя функция работает! Она действительно поможет проверить, является ли строка палиндромом. Попробуй использовать ее сам и убедись в ее полезности!