Rumah > Java > javaTutorial > Bagaimanakah Kita Boleh Memeriksa dengan Cekap sama ada String ialah Palindrom?

Bagaimanakah Kita Boleh Memeriksa dengan Cekap sama ada String ialah Palindrom?

Patricia Arquette
Lepaskan: 2024-12-28 00:01:09
asal
814 orang telah melayarinya

How Can We Efficiently Check if a String is a Palindrome?

Pemeriksa Palindrom Ditapis

Dalam demonstrasi ini, kami menyelidiki selok-belok menyemak sama ada rentetan yang diberikan ialah palindrom. Palindrom mempamerkan sifat luar biasa yang dibaca secara sama ke hadapan dan ke belakang. Satu pendekatan biasa melibatkan menukar rentetan kepada tatasusunan aksara dan membandingkan setiap aksara pada hujung tatasusunan yang bertentangan.

Walau bagaimanapun, terdapat penyelesaian yang lebih cekap dan ringkas:

public static boolean isPalindrome(char[] word) {
    int i1 = 0;
    int i2 = word.length - 1;
    while (i2 > i1) {
        if (word[i1] != word[i2]) {
            return false;
        }
        ++i1;
        --i2;
    }
    return true;
}
Salin selepas log masuk

Ini dipertingkatkan kaedah menggabungkan gelung sementara yang berulang dari awal dan akhir perkataan, membandingkan setiap aksara di sepanjang jalan. Jika mana-mana pasangan aksara tidak sepadan, rentetan itu bukan palindrom. Dengan menambah i1 dan mengecilkan i2 sehingga bertemu di tengah-tengah perkataan, kita boleh menyemak palindrom dengan cekap.

Contoh:

Pertimbangkan rentetan input "andna" :

  • i1 = 0, i2 = 4
  • Bandingkan perkataan[0] (a) dengan perkataan[4] (a): Sama

    • i1 = 1, i2 = 3
  • Bandingkan perkataan[1] (n) dengan perkataan[3] (n): Sama

    • i1 = 2, i2 = 2
  • i1 dan i2 kini sama, jadi gelung ditamatkan dan kembali benar.

Algoritma yang dioptimumkan ini menyediakan kaedah yang diperkemas untuk menentukan sama ada rentetan yang diberikan ialah palindrom.

Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Memeriksa dengan Cekap sama ada String ialah Palindrom?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan