Menu
Coddy logo textTech

Görev Silme

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 18 / 66.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: birincisi, virgülle ayrılmış mevcut görevlerin listesi; ikincisi, kaldırılacak görev numarası (1 tabanlı indeksleme); ve üçüncüsü, kaldırma işleminden sonra eklenecek yeni bir görev. Tüm girdileri okuyun, görevlerden bir vektör oluşturun, belirtilen görevi kaldırın, yeni görevi ekleyin ve güncellenmiş görev listesini görüntüleyin.

Gereksinimler:

  • Virgülle ayrılmış görev açıklamalarını içeren ilk girdiyi okuyun (örneğin, Buy groceries,Call dentist,Finish homework)
  • Bireysel görevleri elde etmek için dizeyi virgüllere göre ayırın
  • Değiştirilebilir (mutable) bir vektör oluşturun ve her görevi ona ekleyin
  • İkinci girdiyi okuyun ve bir tam sayıya dönüştürün (1 tabanlı indeksleme kullanarak kaldırılacak görev numarası)
  • 1 tabanlı indeksi 0 tabanlıya dönüştürün ve o indeksteki görevi kaldırmak için .remove() kullanın
  • Eklenecek yeni bir görevi içeren üçüncü girdiyi okuyun
  • Yeni görevi vektöre eklemek için .push() kullanın
  • Toplam görev sayısını şu formatta yazdırın: Total tasks: X
  • Her görevi ayrı bir satırda şu formatta yazdırın: Task: [task description]

Girdi:

  • İlk satır: Virgülle ayrılmış görev açıklamaları (örneğin, Buy groceries,Call dentist,Finish homework)
  • İkinci satır: Kaldırılacak görev numarasını temsil eden bir tam sayı (1 tabanlı indeksleme)
  • Üçüncü satır: Eklenecek yeni bir görev (örneğin, Study for exam)

Çıktı:

  • İlk satır: Total tasks: X (burada X, kaldırma ve ekleme işlemlerinden sonraki toplam görev sayısıdır)
  • Sonraki satırlar: Her görev Task: [task description] olarak yazdırılır

Kendin dene

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Virgülle ayrılmış görevleri oku
    let tasks_input = lines.next().unwrap().unwrap();
    
    // Kaldırılacak görev numarasını oku (1 tabanlı indeksleme)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // Eklenecek yeni görevi oku
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: Kodunuzu aşağıya yazın
    // tasks_input'u virgüllere göre ayırın ve değiştirilebilir bir vektör oluşturun
    // Belirtilen indeksteki görevi kaldırın (1 tabanlıyı 0 tabanlıya dönüştürün)
    // Yeni görevi vektöre ekleyin
    
    // Sonuçları yazdır
    // Toplam görev sayısını şu formatta yazdır: Total tasks: X
    // Her bir görevi şu formatta yazdır: Task: [task description]
}

Logic & Flow bölümündeki tüm dersler