Pemeriksa Palindrom

Palindrom adalah teks yang membaca sama baik ke depan maupun ke belakang. Kata “Madam” mudah dikenali sebagai palindrom; sementara frasa “A man, a plan, a canal: Panama” memerlukan waktu untuk ditebak karena pengenalan tersebut bergantung pada pengabaian tanda baca dan spasi. Alat ini menormalisasi semua konten yang ditampal, dengan mengubah huruf ke kapital atau kecil, serta menghilangkan spasi dan tanda baca, sekaligus memverifikasi apakah hasilnya benar-benar palindrom, serta menampilkan string terbaliknya berdampingan.

Bagaimana proses pengecekan berjalan

  1. 1

    Tampal teks atau angka

    Satu kata, satu frasa, satu kalimat panjang, atau satu deretan angka.

  2. 2

    Normalisasi telah diterapkan.

    Huruf diubah menjadi huruf kecil, dan semua yang bukan huruf atau angka (spasi, tanda baca, simbol) dihapus. Setiap huruf Unicode dipertahankan apa adanya, sehingga aksen ikut diperhitungkan dan aksara non-Latin tetap berfungsi.

  3. 3

    Bandingkan arah maju dan mundur

    Jika string yang telah dinormalisasi sesuai dengan versi terbaliknya, maka string tersebut merupakan palindrom.

  4. 4

    Periksa hasilnya.

    Alat ini menampilkan baik string mentah maupun string yang telah dinormalisasi (dibalikkan) untuk verifikasi.

Contoh Palindrom Klasik

Teks Jenis
madam Satu kata
level Satu kata
racecar Satu kata
A man, a plan, a canal: Panama Frasa
Was it a car or a cat I saw? Pertanyaan
Never odd or even Frasa
12321 Nomor
Mr. Owl ate my metal worm Kalimat panjang
kasur rusak Frasa Indonesia

Kategori Palindrom

  • Palindrom karakter: Nilai default adalah susunan huruf yang sama secara maju dan mundur, tanpa memperhitungkan spasi.
  • Palindrom kata: “I did, did I” – setiap kata diulang secara sempurna sebagai satu kesatuan.
  • Semordnilaps: Kata-kata yang menjadi kata berbeda ketika dibalikkan posisinya: “stressed” → “desserts”.
  • Palindrom numerik: Setiap urutan angka yang membaca sama baik dari arah satu maupun arah lainnya; contohnya: 1991 dan 1881.
  • Palindrom genomik: Urutan DNA di mana suatu wilayah membaca secara identik pada kedua untai (terkait dengan enzim restriksi).

Mengprogram mekanisme pemeriksaan

Logika inti dalam pseudokode:

function isPalindrome(s):
    normalized = lowercase(s)
    normalized = removeAll(normalized, /[^\p{L}\p{N}]/u)   // pertahankan huruf dan angka, aksara apa pun
    return normalized == reverse(normalized)

Ini merupakan pertanyaan pemanasan standar untuk wawancara. Variasi pertanyaan tersebut mencakup kasus-kasus khusus: mengabaikan tanda kombinasi Unicode, menangani string kosong, mendukung emoji, serta memperhatikan kelompok grafem.

Variasi umum dari aturan tersebut

  • Mode ketat: menghitung setiap karakter, termasuk spasi dan tanda baca. "aba" lulus; "a man a plan" gagal.
  • Hanya huruf dan angka: hapus semua elemen lainnya. Metode ini umum digunakan dalam pemeriksaan palindrom kasual.
  • Normalisasi Unicode: beberapa pemeriksa melipat bentuk beraksen (NFKD) sebelum membandingkan, sehingga “café” akan cocok dengan “éfac”.

Alat ini menggunakan pendekatan hanya huruf dan angka: mengubah ke huruf kecil, mempertahankan setiap huruf dan angka Unicode (aksara apa pun, termasuk aksara Indonesia), lalu membuang sisanya. Alat ini tidak melipat aksen, sehingga huruf beraksen harus dipasangkan dengan huruf beraksen yang sama, dan tidak ada tombol “strict”.

Pertanyaan yang Sering Diajukan

Ya. Setiap karakter tunggal secara sederhana merupakan palindrom, yakni sama dengan bentuknya yang dibalikkan. Sebagian besar definisi pedagogis memerlukan setidaknya tiga karakter agar dianggap menarik, namun definisi matematis menerima panjang 1 bahkan panjang 0 (string kosong).

Anggapnya sebagai deretan angka. 121, 12321, dan 1991 merupakan palindrom numerik. Untuk bilangan bulat besar, periksa representasi berupa deretan angka; jangan mencoba membalikkan urutan angka secara aritmetika karena hal tersebut akan menghilangkan angka nol di awal.

Di bahasa Inggris, salah satu karya komposisi yang sangat kompleks adalah “A Man, a Plan, a Canal: Panama” beserta berbagai variasinya; palindrom yang dihasilkan oleh komputer karya Peter Norvig mencapai lebih dari 17.000 kata, meskipun tidak satupun di antaranya memenuhi aturan tata bahasa. Palindrom terpanjang yang terdiri dari satu kata dalam bahasa Inggris yang tercatat di Guinness adalah “tattarrattat” (dari novel Ulysses karya Joyce).

Ya, dalam setiap bahasa. Kata “saippuakivikauppias” dalam bahasa Finlandia (penjual batu sabun, terdiri dari 19 huruf) sering dikutip sebagai palindrom satu kata terpanjang yang muncul secara alami dalam suatu bahasa.

Alat Terkait

Alat ini tersedia dalam bahasa lain