Rumah > Java > javaTutorial > Bagaimanakah Kami Boleh Mengoptimumkan Pemeriksaan Rentetan Palindrom?

Bagaimanakah Kami Boleh Mengoptimumkan Pemeriksaan Rentetan Palindrom?

DDD
Lepaskan: 2024-12-23 17:35:09
asal
867 orang telah melayarinya

How Can We Optimize Palindrome String Checking?

Memperbaiki Kod untuk Pemeriksaan Palindrom

Untuk menyemak sama ada rentetan ialah palindrom, anda telah membangunkan kaedah yang membandingkan aksara dari kedua-dua hujung ke arah tengah. Walau bagaimanapun, terdapat ruang untuk pengoptimuman.

Pendekatan Dioptimumkan:

Kod berikut menawarkan penyelesaian yang lebih mudah dan cekap:

public static boolean istPalindrom(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

Penjelasan:

Kod ini menggunakan dua penunjuk, i1 dan i2, dimulakan pada permulaan dan akhir perkataan, masing-masing. Ia berulang ke dalam sehingga i2 melintasi i1.

  • Jika aksara pada word[i1] dan word[i2] tidak sepadan, kaedah itu akan kembali palsu.
  • Jika ia sepadan, kedua-dua penunjuk bergerak ke arah tengah: kenaikan i1, dan penurunan i2.

Apabila penunjuk bersilang, keseluruhan perkataan telah berjaya dibandingkan, dan kaedah itu kembali benar.

Contoh:

Untuk perkataan "andna":

  • Pada mulanya, i1 ialah 0 (awal perkataan) dan i2 ialah 4 (akhir perkataan perkataan).
  • Lelaran gelung:

    • Watak pada i1 (0) ialah 'a'. Watak pada i2 (4) ialah 'a'. Mereka sepadan, jadi gerakkan kedua-dua penunjuk ke arah tengah.
    • Watak pada i1 (1) ialah 'n'. Watak pada i2 (3) ialah 'n'. Mereka sepadan.
    • i1 (2) dan i2 (2) telah bersilang, jadi semua aksara telah berjaya dibandingkan.

Kaedah itu kembali benar, mengesahkan "andna" itu ialah palindrom.

Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Mengoptimumkan Pemeriksaan Rentetan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan