Palindrom Denetleyici

Bir palindrom ileri ve geri aynı okunur. “Madam” kolaydır; “A man, a plan, a canal: Panama” fark etmek bir an sürer çünkü noktalama işaretlerini ve boşlukları yok saymaya bağlıdır. Bu araç yapıştırdığınız her şeyi normalleştirir, küçük harfe çevirir, boşlukları ve noktalama işaretlerini siler, ve sonucun gerçek bir palindrom olup olmadığını doğrular, ayrıca tersine çevrilmiş dizeyi yan yana gösterir.

Kontrol nasıl çalışır

  1. 1

    Metni veya sayıyı yapıştırın

    Tek bir kelime, bir ifade, uzun bir cümle veya sayısal bir dize.

  2. 2

    Normalleştirme uygulanır

    Küçük harfe çevrilir; harf veya rakam olmayan her şey (boşluk, noktalama, sembol) kaldırılır. Her Unicode harfi olduğu gibi korunur, bu yüzden aksanlar dikkate alınır ve Latin dışı yazılar da çalışır.

  3. 3

    İleri ve tersi karşılaştırılır

    Normalleştirilmiş dize tersiyle eşleşirse, bir palindromdur.

  4. 4

    Sonucu inceleyin

    Araç, doğrulama için hem ham hem normalleştirilmiş dizeleri tersine çevrilmiş olarak gösterir.

Klasik palindrom örnekleri

Metin Tür
madam Tek kelime
level Tek kelime
racecar Tek kelime
A man, a plan, a canal: Panama İfade
Was it a car or a cat I saw? Soru
Never odd or even İfade
12321 Sayı
Mr. Owl ate my metal worm Uzun cümle
kabak Türkçe kelime

Palindrom kategorileri

  • Karakter palindromları. Varsayılan, boşlukları yok sayarak ileri ve geri aynı harfler.
  • Kelime palindromları. “I did, did I”, her kelime bir birim olarak yansıtılmış.
  • Semordnilap’lar. Tersine çevrildiğinde farklı bir kelime oluşturan kelimeler: “stressed” → “desserts.”
  • Sayısal palindromlar. Her iki yönde aynı okunan herhangi bir rakam dizisi: 1991, 1881.
  • Genomik palindromlar. Bir bölgenin her iki iplikte de aynı okunduğu DNA dizileri (restriksiyon enzimleriyle ilgili).

Kontrolü programlamak

Sözde koddaki temel mantık:

function isPalindrome(s):
    normalized = lowercase(s)
    normalized = removeAll(normalized, /[^\p{L}\p{N}]/u)   // harf ve rakamları koru, her yazı sistemi
    return normalized == reverse(normalized)

Bu standart bir mülakat ısınma sorusudur. Varyasyonlar uç durumlar ekler: unicode birleştirme işaretlerini yok say, boş dizeleri işle, emoji destekle, grafem kümelerine saygı göster.

Kural üzerindeki yaygın varyasyonlar

  • Katı mod: Boşluklar ve noktalama işaretleri dahil her karakteri say. "aba" geçer; "a man a plan" geçmez.
  • Yalnızca alfasayısal: Diğer her şeyi sıyır. Çoğu gündelik palindrom kontrolü bunu kullanır.
  • Unicode normalleştirme: Bazı denetleyiciler karşılaştırmadan önce aksanlı biçimleri (NFKD) birleştirir, böylece “café” ile “éfac” eşleşir.

Bu araç yalnızca alfasayısal yöntemi kullanır: küçük harfe çevirir, her Unicode harf ve rakamı (her yazı sistemi) korur ve gerisini atar. Aksanları birleştirmez, bu yüzden aksanlı bir harfin palindrom sayılması için aynı aksanlı harfle eşleşmesi gerekir. Ayrı bir “katı mod” düğmesi yoktur.

Sık Sorulan Sorular

Evet. Herhangi bir tek karakter önemsiz şekilde bir palindromdur, tersiyle eşittir. Çoğu pedagojik tanım ilginç olması için en az üç karakter gerektirir, ancak matematiksel tanım 1 uzunluğunu ve hatta 0 uzunluğunu (boş dize) kabul eder.

Onları rakam dizeleri olarak ele alın. 121, 12321 ve 1991 sayısal palindromlardır. Büyük tam sayılar için dize gösterimini kontrol edin; sayıyı aritmetik olarak tersine çevirmeye çalışmayın, bu baştaki sıfırları kaybeder.

İngilizcede ciddi bir kompozisyon “A Man, a Plan, a Canal: Panama” ve onun birçok uzantısıdır, Peter Norvig’in bilgisayar tarafından üretilmiş palindromları 17.000 kelimeyi aşar, ancak hiçbiri dilbilgisel değildir. Guinness tarafından alıntılanan İngilizcede en uzun tek kelimelik palindrom “tattarrattat”’tır (Joyce, Ulysses).

Evet, her dilde. Fince “saippuakivikauppias” (sabuntaşı satıcısı, 19 harf) genellikle herhangi bir dilde doğal olarak ortaya çıkan en uzun tek kelimelik palindrom olarak gösterilir.

İlgili Araçlar

Araç diğer dillerde mevcuttur