Oyunu çoxluq (set) verilənlər strukturu ilə modelləşdirək. Bu çoxluq kağıza yazılmış bütün rəqəmləri saxlayacaq.
Hər dəfə Fidan bir rəqəm söylədikdə, Fuad yoxlayır, bu rəqəm çoxluqda varmı:
əgər varsa — onu çoxluqdan silir (kağızdan pozur);
əgər yoxdursa — çoxluğa rəqəmi əlavə edir (kağıza yazır).
Oyunun sonunda kağızda qalan rəqəmlərin sayı çoxluqdakı elementlərin sayına bərabərdir.
Nümunə
Birinci və ikinci nümunələr üçün çoxluğun işini modelləşdirək.
Oyunun sonunda:
Birinci çoxluqda element qalır;
İkinci çoxluq boşdur (yəni element var);
Alqoritmin reallaşdırılması
Rəqəmlərin sayını oxuyuruq.
scanf("%d", &n);Fidan tərəfindən deyilən rəqəmi ardıcıl şəkildə işləyirik.
for (i = 0; i < n; i++)
{
scanf("%d", &x);Hər dəfə Fidan bir rəqəmini söylədikdə:
Əgər rəqəmi çoxluqda yoxdursa, onu əlavə edirik.
Əgər rəqəmi çoxluqda mövcuddursa, onu silirik.
if (s.find(x) == s.end())
s.insert(x);
else
s.erase(x);
}Cavabı çap edirik — çoxluğunun ölçüsü.
printf("%d\n", s.size());Python reallaşdırılması
Giriş məlumatlarını oxuyuruq.
n = int(input())
lst = map(int,input().split())Çoxluğu elan edirik.
s = set()Fidan tərəfindən deyilən rəqəmləri ardıcıl şəkildə işləyirik.
for x in lst:Hər dəfə Fidan bir rəqəmini söylədikdə:
Əgər rəqəmi çoxluqda mövcuddursa, onu silirik.
Əgər rəqəmi çoxluqda yoxdursa, onu əlavə edirik.
if x in s:
s.remove(x)
else:
s.add(x)Cavabı çap edirik — çoxluğunun ölçüsü.
print(len(s))