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; }
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" :
Bandingkan perkataan[0] (a) dengan perkataan[4] (a): Sama
Bandingkan perkataan[1] (n) dengan perkataan[3] (n): Sama
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!