Python ile Bir Dizi İçerisinde Bir Kez Kullanılan İlk Elemanı Bulma

Python kullanarak örnek algoritma sorularını çözdüğümüz serimizin on ikinci sorusuna geçelim

  1. Bir dizi içerisinde sadece bir kez kullanılan ilk elemanı bulma:
    • Örnek girdi: [4, 1, 2, 1, 2]
    • Örnek çıktı: 4 (Çünkü 4 sayısı dizide sadece bir kez geçiyor.)
  1. Çözüm Yolu: Sözlük Kullanarak
def tek_gecen_sayiyi_bul(dizi):
    sayi_sayim = {}
    for sayi in dizi:
        if sayi in sayi_sayim:
            sayi_sayim[sayi] += 1
        else:
            sayi_sayim[sayi] = 1
            
    for sayi, sayim in sayi_sayim.items():
        if sayim == 1:
            return sayi

# Örnek kullanım:
giris_dizi = [4, 1, 2, 1, 2]
cikis = tek_gecen_sayiyi_bul(giris_dizi)
print("Sözlük Kullanarak Bulunan Sayı:", cikis)  # 4

Yukarıdaki kodumuzda, bir dizide yalnızca bir kez geçen sayıyı bulmayı amaçlıyoruz. Bu işlemi gerçekleştirmek için bir sözlük yapısı (sayi_sayim) kullanıyoruz. Diziyi dolaşırken her eleman için bu elemanın tekrar sayısını bu sözlük içerisinde saklıyoruz.

Kodumuzda, for döngüsü ile diziyi baştan sona dolaşıyoruz. Dizi üzerindeki her bir elemanı incelediğimizde, eğer bu elemanı daha önce gördüysek (if koşulu), bu elemanın tekrar sayısını bir artırıyoruz. Eğer elemanı ilk kez görüyorsak, bu elemanı sözlüğe ekleyip tekrar sayısını 1 olarak ayarlıyoruz.

Bu işlemden sonra sayi_sayim sözlüğünde, her bir elemanın kaç kere tekrar ettiği bilgisi saklanmış oluyor. İkinci döngüde ise, bu sözlükteki elemanların tekrar sayılarını kontrol ediyoruz ve tekrar sayısı 1 olan elemanı bulup döndürüyoruz. Kodu çalıştırmak için: Trinket

  1. Çözüm Yolu: XOR Kullanarak
def tek_gecen_sayiyi_bul_xor(dizi):
    sonuc = 0
    for sayi in dizi:
        sonuc ^= sayi
    return sonuc

# Örnek kullanım:
giris_dizi = [4, 1, 2, 1, 2]
cikis_xor = tek_gecen_sayiyi_bul_xor(giris_dizi)
print("XOR Kullanarak Bulunan Sayı:", cikis_xor)  # 4

^ işareti ile gösterilen XOR operatörü, iki bit arasında yapılan bir işlemdir ve eğer iki bit aynıysa sonucu 0, farklıysa sonucu 1 olarak verir. Bu özellik, aynı sayının iki kere XOR işlemine tabi tutulduğunda sonucun 0 olmasını sağlar.

Kodumuzda, for döngüsü ile diziyi baştan sona dolaşıyoruz. Başlangıçta sonucu 0 olarak ayarladıktan sonra, dizi üzerindeki her bir eleman için bu elemanı sonuca XOR işlemi ile ekliyoruz. Eğer bir sayı dizide iki kez bulunuyorsa, bu sayının sonuc üzerindeki etkisi sıfırlanacaktır. Ancak, yalnızca bir kez geçen sayı sonucu etkileyecektir. Kodu çalıştırmak için: Trinket

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu