// isPalindrome проверяет, является ли строка палиндромом.

go package main

Короткий ответ

Что ответить на собеседовании

go package main

Подробный разбор

Ответ с пояснениями

Условие

// isPalindrome проверяет, является ли строка палиндромом. // Учитываются только буквы и цифры (алфавномерические символы), сравнение регистронезависимое. // O(1) по памяти + O(n) по времени // s := "racecar"

func isPalindrome(s string) bool { }

Ответ

go package main

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

func isPalindrome(s string) bool { var filtered []rune for _, r := range s { if unicode.IsLetter(r) { filtered = append(filtered, unicode.ToLower(r)) } }

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

}

func main() { fmt.Println(isPalindrome("А роза упала на лапу Азора")) // true fmt.Println(isPalindrome("Hello, world!")) // false }

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку