تمرين إعادة البناء
Palindrome Checker
أعد كتابة برنامج Go يفحص النصوص المتناظرة.
go
~16 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
package main
import (
"fmt"
"strings"
"unicode"
)
func normalizedRunes(text string) []rune {
var runes []rune
for _, r := range strings.ToLower(text) {
if unicode.IsLetter(r) || unicode.IsDigit(r) {
runes = append(runes, r)
}
}
return runes
}
func isPalindrome(text string) bool {
runes := normalizedRunes(text)
for left, right := 0, len(runes)-1; left < right; left, right = left+1, right-1 {
if runes[left] != runes[right] {
return false
}
}
return true
}
func main() {
examples := []string{
"level",
"Never odd or even",
"Go is practical",
}
for _, example := range examples {
fmt.Printf("%q -> %t\n", example, isPalindrome(example))
}
}اكتب هنا