Menu
Coddy logo textTech

Удаление задачи

Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 18 из 66.

challenge icon

Задание

Легко

Вы получите три входных данных: во-первых, список существующих задач, разделенных запятыми; во-вторых, номер задачи для удаления (индексация начинается с 1); и в-третьих, новую задачу для добавления после удаления. Прочитайте все входные данные, создайте вектор из задач, удалите указанную задачу, добавьте новую задачу и выведите обновленный список задач.

Требования:

  • Прочитайте первую строку ввода, содержащую описания задач, разделенные запятыми (например, Buy groceries,Call dentist,Finish homework)
  • Разделите строку по запятым, чтобы получить отдельные задачи
  • Создайте изменяемый вектор и добавьте в него каждую задачу
  • Прочитайте вторую строку ввода и преобразуйте ее в целое число (номер задачи для удаления, используя индексацию с 1)
  • Преобразуйте индекс на базе 1 в индекс на базе 0 и используйте .remove() для удаления задачи по этому индексу
  • Прочитайте третью строку ввода, содержащую новую задачу для добавления
  • Используйте .push() для добавления новой задачи в вектор
  • Выведите общее количество задач в формате: Total tasks: X
  • Выведите каждую задачу на отдельной строке в формате: Task: [task description]

Ввод:

  • Первая строка: Описания задач через запятую (например, Buy groceries,Call dentist,Finish homework)
  • Вторая строка: Целое число, представляющее номер задачи для удаления (индексация с 1)
  • Третья строка: Новая задача для добавления (например, Study for exam)

Вывод:

  • Первая строка: Total tasks: X, где X — общее количество задач после удаления и добавления
  • Последующие строки: Каждая задача выводится как Task: [task description]

Попробуйте сами

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Прочитать задачи, разделенные запятыми
    let tasks_input = lines.next().unwrap().unwrap();
    
    // Прочитать номер задачи для удаления (индексация с 1)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // Прочитать новую задачу для добавления
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: Напишите свой код ниже
    // Разделите tasks_input по запятым и создайте изменяемый вектор
    // Удалите задачу по указанному индексу (преобразуйте из 1-базового в 0-базовый)
    // Добавьте новую задачу в вектор
    
    // Вывести результаты
    // Вывести общее количество задач в формате: Total tasks: X
    // Вывести каждую задачу в формате: Task: [task description]
}

Все уроки раздела Logic & Flow