Palindrom, tersten ve düzden aynı şekilde okunan bir kelime, sayı, ifade veya başka bir karakter dizisidir; örneğin madam veya racecar.
Kısa rakamlar (11/11/11 11:11) ve uzun rakamlar (02/02/2020) kullanan tarih/saat damgaları da dahil olmak üzere sayısal palindromlar da vardır. Örneğin; 22 Şubat 2022 Salı günü, soldan sağa veya tam tersi okunabildiği için bir palindrom gün olarak kabul edilir (gg-aa-yyyy biçiminde 22022022).
Giriş olarak bir string alan ve stringin palindrom olup olmadığını kontrol eden bir program oluşturalım.
Hadi Kodlayalım
- Sprite nesnesini başlat.
sprite = Sprite('Tobi') - N adında bir parametreye sahip isPalindrom() adında bir fonksiyon ekleyin .
def isPalindrome(A): - l’ yi dizenin uzunluğuna, p’yi indeksi sağdan izleyen değişkene atayın , p’yi -1 uzunluğuna ayarlayın. Ve indeks değişkenini while döngüsünde indeksin önden konumunu izleyecek şekilde ayarlayın.
l = len(A) p = l-1 index =0 - While döngüsünü < p koşuluyla başlatın .
while (index < p): - İndeks ve p değişkenlerinin eşit olup olmadığını kontrol edin . Eşitse, indeksi 1 artırın ve p’yi 1 azaltın.
if(A[index] == A[p]):
index = index + 1 p = p - 1 - Eğer koşul yanlışsa, o zaman dize bir palindrom değildir. Mesajı görüntüle ve fonksiyonu yanlış olarak döndür.
else:
sprite.say(A + " is not a palindrome", 2)
return False - Döngü bittiğinde tüm karakterleri kontrol etmiş oluruz ve bir palindrom dizimiz olur. Mesajı görüntüler ve True değerini döndürür.
sprite.say(A + " is a palindrome", 2)return True - Test koşullarını ekleyin ve oluşturulan fonksiyonu kontrol edin.
sprite.say("Case 1: MADAM", 1)isPalindrome("MADAM")sprite.say("Case 2: TOWER", 1)isPalindrome("TOWER")
Tam program şu şekildedir:
sprite = Sprite('Tobi')
def isPalindrome(A):
l = len(A)
p = l-1
index = 0
while (index < p):
if(A[index] == A[p]):
index = index + 1
p = p - 1
else:
sprite.say(A + " is not a palindrome", 2)
return False
sprite.say(A + " is a palindrome", 2)
return True
sprite.say("Case 1: MADAM", 1)
isPalindrome("MADAM")
sprite.say("Case 2: TOWER", 1)
isPalindrome("TOWER")
Çıktı
