Palindrom mu Değil mi?
Bazı kelime veya cümlelerin tersleri kendilerine eşittir ve böyle ifadelere palindrom denir. Yukarıdaki program ile dışarıdan yazılan ifadenin palindrom olup olmadığını kontrol ettirebiliriz.
Kullanıcıdan bir cümle girmesini istiyoruz. Büyük küçük harfler birbirlerine eşit olmadığından girilen cümleyi ToLower() ile küçük harfe çeviriyoruz. Ardından iki tane boş string değişken tanımladık. Sebebi ise palindrom ifadelerde aralardaki boşluklar önemsizdir. Fakat kullanıcı ifadeyi yazarken araya boşluk bırakabilir. Bu da yanlış sonuç çıkmasına neden olabilir. Bu yüzden iki tane ayrı for döngüsü oluşturarak ifadenin boşluksuz düz ve boşluksuz ters hallerini alacağız. ilk for döngüsünde cümleyi uzunluğu kadar döngüye aldık ve içeride if koşuluyla i. karakterin boşluk olup olmadığını sorguladık. Eğer boşluk değil ise i.indise sahip olan o karakteri, başlangıçta tanımladığımız duz adlı değişkenin üzerine ekleme yapmasını istedik. Böylece boşluksuz hali duz değişkeninde tutulmuş oldu. Sonra ikinci for döngüsünde ise bu sefer ters haline ihtiyacımız olduğundan cümlenin karakterlerini tersten kontrol ettirdik. j indisini cümlenin uzunluğunun bir eksiğinden başlatıp, sıfırdan büyük eşit olma haline kadar birer birer azalt dedik (Çünkü karakterlerin indisleri 0 (sıfır) dan başlar ve ifadenin uzunluğundan bir eksiğe kadar devam eder). İlk for döngüsünde yaptığımız gibi yine if koşuluyla j. indisin boşluk olup olmadığına baktırdık. Eğer boşluk değilse ters adlı değişkene j. indise sahip o karakteri ekle demiş olduk. En sonda ise if else yapısı ile duz ve ters değişkenlerimizin aynı olup olmadığına baktık. Birbirlerine eşitseler "palindromik bir cümledir" , değil ise "palindromik değildir." ifadesini ekrana yazdırmasını istedik.
Yukarıdaki Console da palindrom olan bir ifadeyi yazdığımızda bize ifadenin hem düz hem de ters boşluksuz hallerini verdi. Sonucunda da "palindromik bir cümle" olduğunu söyledi.
Yorumlar
Yorum Gönder