Sobes.tech
Middle

Bir sətirin palindrom olub olmadığını yoxlayan funksiya yazın. - Palindrom, hər iki istiqamətdə oxunanda eyni olan simvollar ardıcıllığıdır. - Yalnız a-z və A-Я hərflərini yoxlayın, böyük-kiçik hərf fərqini nəzərə almadan.

sobes.tech Süni İntellekt

AI-dan cavab

go package main

import ( "fmt" "strings" "unicode" )

func isPalindrome(s string) bool { var filtered []rune for _, r := range s { if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') || (r >= 'А' && r <= 'я') || r == 'ё' || r == 'Ё' { filtered = append(filtered, unicode.ToLower(r)) } }

for i := 0; i < len(filtered)/2; i++ {
	if filtered[i] != filtered[len(filtered)-1-i] {
		return false
	}
}
return true

}

func main() { tests := []string{ "А роза упала на лапу Азора", "Hello", "Шалаш", "Привет", }

for _, test := range tests {
	fmt.Printf("%q is palindrome? %v\n", test, isPalindrome(test))
}

}


Функция `isPalindrome` сначала фильтрует строку, оставляя только буквы русского и английского алфавитов, приводя их к нижнему регистру, затем проверяет, читается ли строка одинаково с обеих сторон.