Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Palindrome menyemak rentetan

Palindrome menyemak rentetan

PHPz
PHPzasal
2024-07-17 13:36:15975semak imbas

Palindrome check a string

Yang ini agak biasa. Bunyinya sukar, tetapi tidak begitu teruk apabila anda memikirkannya dengan teliti.

Tulis fungsi golang untuk memeriksa sama ada rentetan ialah palindrom.

Palindrom ialah jujukan aksara yang sama walaupun diterbalikkan, contohnya:

  • "aba" ialah palindrom

  • "abb bukan

  • "ab a" dianggap palindrom oleh kebanyakan orang, jadi kami mengabaikan ruang kosong.

func PalindromeCheck(str string) bool {
    trimmedStr := strings.ReplaceAll(str, " ", "")
    len := len(trimmedStr)
    chars := []rune(trimmedStr)
    for i := 0; i < len/2; i++ {
        if chars[i] != chars[len-i-1] {
            return false
        }
    }
    return true
}

Penyelesaian ini berfungsi sama seperti yang anda akan dapati untuk C atau Java apabila mencari dalam talian. Kami pada asasnya menggunakan dwi penuding untuk melintasi dari awal dan akhir mencari watak yang tidak sepadan. Apabila ketidakpadanan ditemui, kita boleh mengisytiharkan rentetan itu bukan palindrom.

Bolehkah kita menjadikannya lebih baik?
Adakah terdapat cara yang lebih baik untuk memangkas ruang putih daripada menggunakan rentetan.GantiSemua? (ada tapi boleh jadi hodoh)
Bagaimana pula dengan kecekapan menukar kepada []rune, adakah cara yang lebih baik?

Siarkan pendapat anda dalam ulasan.

Terima kasih!

Kod untuk siaran ini dan semua siaran dalam siri ini boleh didapati di sini

Atas ialah kandungan terperinci Palindrome menyemak rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn