Menu
Coddy logo textTech

Özet - Benzersiz Davetli Listesi

Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 25 / 65.

challenge icon

Görev

Kolay

İki farklı davet kaynağından gelen konuk listelerini analiz ederek bir etkinlik planlama sistemini yöneten bir program oluşturun. Programınız şunları yapmalıdır:

  1. Etkinlik adını temsil eden bir dize (string) girdisi okuyun
  2. Birinci davet listesinden konukları temsil eden birden fazla dize girdisi okuyun (girdi "list1_done" değerini aldığınızda sona erecektir)
  3. İkinci davet listesinden konukları temsil eden birden fazla dize girdisi okuyun (girdi "list2_done" değerini aldığınızda sona erecektir)
  4. Her liste içindeki kopyaları otomatik olarak işlemek için her iki konuk listesini Set'e (Küme) dönüştürün
  5. Etkinliğe davet edilen tüm benzersiz konukları bulmak için union() metodunu kullanın
  6. Her iki davet listesinde de bulunan konukları bulmak için intersection() metodunu kullanın
  7. Yalnızca birinci davet listesinde bulunan konukları bulmak için difference() metodunu kullanın
  8. Konuk listesi analizini aşağıda gösterilen tam formatta yazdırın

Örneğin, etkinlik adı "Birthday Party" ise, birinci liste "Alice", "Bob", "Charlie", "Diana" içeriyorsa ve ikinci liste "Bob", "Diana", "Eve", "Frank" içeriyorsa, programınızın çıktısı şöyle olmalıdır:

Event: Birthday Party
First invitation list: {Alice, Bob, Charlie, Diana}
Second invitation list: {Bob, Diana, Eve, Frank}
All unique guests: {Alice, Bob, Charlie, Diana, Eve, Frank}
Guests on both lists: {Bob, Diana}
Guests only on first list: {Alice, Charlie}
Total unique guests: 6
Duplicate invitations: 2
First list only: 2
Status: Guest list analysis completed

Eğer etkinlik adı "Wedding Reception" ise, birinci liste "John", "Mary", "Sarah" içeriyorsa ve ikinci liste "Tom", "Lisa", "Mike" içeriyorsa, programınızın çıktısı şöyle olmalıdır:

Event: Wedding Reception
First invitation list: {John, Mary, Sarah}
Second invitation list: {Tom, Lisa, Mike}
All unique guests: {John, Mary, Sarah, Tom, Lisa, Mike}
Guests on both lists: {}
Guests only on first list: {John, Mary, Sarah}
Total unique guests: 6
Duplicate invitations: 0
First list only: 3
Status: Guest list analysis completed

Eğer etkinlik adı "Company Meeting" ise, birinci liste "Alex", "Jordan", "Taylor", "Morgan", "Alex" içeriyorsa ve ikinci liste "Jordan", "Taylor", "Casey", "Jordan" içeriyorsa, programınızın çıktısı şöyle olmalıdır:

Event: Company Meeting
First invitation list: {Alex, Jordan, Taylor, Morgan}
Second invitation list: {Jordan, Taylor, Casey}
All unique guests: {Alex, Jordan, Taylor, Morgan, Casey}
Guests on both lists: {Jordan, Taylor}
Guests only on first list: {Alex, Morgan}
Total unique guests: 5
Duplicate invitations: 2
First list only: 2
Status: Guest list analysis completed

Programınız her üç küme işlemini de göstermelidir: tüm konukları birleştirmek için union(), her iki listede de görünen konukları bulmak için intersection() ve yalnızca birinci listeye özel konukları bulmak için difference(). Bireysel listelerdeki kopyaları işlemek için önce girdi listelerini Set'lere dönüştürün, ardından konuk dağılımını analiz etmek için küme işlemlerini gerçekleştirin.

Kendin dene

import 'dart:io';

void main() {
  // Etkinlik adını oku
  String? eventName = stdin.readLineSync();
  
  // İlk davetli listesini oku
  List<String> firstList = [];
  String? input;
  while ((input = stdin.readLineSync()) != "list1_done") {
    if (input != null) {
      firstList.add(input);
    }
  }
  
  // İkinci davetli listesini oku
  List<String> secondList = [];
  while ((input = stdin.readLineSync()) != "list2_done") {
    if (input != null) {
      secondList.add(input);
    }
  }
  
  // Listeleri kümelere (set) dönüştür
  Set<String> firstSet = firstList.toSet();
  Set<String> secondSet = secondList.toSet();
  
  // TODO: Kodunuzu aşağıya yazın
  // Davetli listelerini analiz etmek için union(), intersection() ve difference() metotlarını kullanın
  // Tüm benzersiz davetlileri, her iki listedeki davetlileri ve sadece ilk listedeki davetlileri hesaplayın
  
  // Sonuçları istenen formatta yazdırın
  print("Event: $eventName");
  print("First invitation list: $firstSet");
  print("Second invitation list: $secondSet");
  // Kalan çıktı ifadelerini buraya ekleyin
}

Mantık & Akış bölümündeki tüm dersler