Algoritma ve Programlama Dünyası — Uygulama 8 (Palindrome Kelimeler)

Turhan Can Kargın
Kodcular
Published in
2 min readMay 9, 2024

--

Herkese merhabalar! Önceki yazılarımızda bir dizi sıralama algoritmasını Python ve C++ gibi dillerle uygulamayı gördük. Son yazımızda ise basit bir tahmin oyunu yapmıştık. Bu sefer, çeşitli alanlarda kullanılan bir başka önemli algoritma türüne odaklanacağız: Palindrom kontrolü. Bu uygulamayı Java dilinde gerçekleştireceğiz.

Photo by Raphael Schaller on Unsplash

Palindrome Nedir?

Palindrom bir kelime, cümle veya sayı dizisinin ileriye veya geriye doğru aynı şekilde okunabilmesidir. Örneğin ‘madam’, ‘racecar’ veya ‘121’ gibi. Palindromlar, algoritma ve veri yapıları derslerinde sıkça kullanılan bir konsepttir. Bunun yanında, genetik dizilerin incelenmesi ve bazı arama algoritmaları gibi birçok gerçek dünya uygulaması da bulunmaktadır.

Palindrome Kontrol Algoritması

Palindrome kontrol algoritması, bir kelimenin veya cümlenin palindrom olup olmadığını kontrol eder. Bu, genellikle bir kelimenin ilk ve son karakterlerini karşılaştırarak ve daha sonra kelimenin içine doğru ilerleyerek yapılır.

Pseudocode (Sözde Kod)

ALGORITMA IsPalindrome
GİRDİ: String str
ÇIKTI: Boolean

BAŞLA
SET start TO 0
SET end TO length of str - 1

WHILE start < end DO
IF str[start] != str[end] THEN
RETURN false
END IF

INCREMENT start
DECREMENT end
END WHILE

RETURN true
BİTİR

Java’da Palindrome Kontrol Uygulaması

public class Main {
public static boolean isPalindrome(String str) {
int start = 0, end = str.length() - 1;

while (start < end) {
if (str.charAt(start) != str.charAt(end))
return false;

start++;
end--;
}

return true;
}

public static void main(String[] args) {
String str1 = "madam";
String str2 = "hello";

System.out.println("Is '" + str1 + "' a palindrome? " + isPalindrome(str1));
System.out.println("Is '" + str2 + "' a palindrome? " + isPalindrome(str2));
}
}

Bu kod, belirtilen stringin palindrom olup olmadığını kontrol eder ve sonucu ekrana basar.

Çıktılar:

Is 'madam' a palindrome? true
Is 'hello' a palindrome? false

Bu çıktılar, “madam” kelimesinin bir palindrom olduğunu (ilk ve son harfler aynı ve bu durum kelimenin tümünde geçerli) ve “hello” kelimesinin bir palindrom olmadığını (ilk ve son harfler farklı) gösterir.

Algoritmanın Zaman Karmaşıklığı

Palindrome kontrol algoritmasının zaman karmaşıklığı genellikle O(n) olarak kabul edilir, çünkü stringin her karakteri en fazla bir kez kontrol edilir.

Sonuç

Java’da palindrome kontrol algoritması, genel amaçlı ve genellikle string işleme problemlerini çözmek için kullanılır. Hem pratikte hem de kodlama mülakatlarında sıkça karşılaşılan bir konudur. Palindrom kontrol algoritması, bir algoritmanın basitliği ile onun etkinliği arasındaki dengeyi güzel bir şekilde gösterir.

Eğer bu yazıyı beğendiyseniz aşağıdaki alkışa istediğiniz kadar tıklayarak yazılarıma destek olabilirsiniz :)

Herhangi bir sorunuz olursa veya benimle iletişim kurmak isterseniz, tüm sosyal medya hesaplarım aşağıdaki linkte yer alıyor.

Ayrıca diğer blog yazılarımı aşağıda yer alan websitem üzerinden takip edebilirsiniz.

Bir sonraki yazıda görüşmek üzere!

--

--