Menu
CoddyTech

Ôn tập: tìm một phần tử

Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 41 trên 66.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận được hai đầu vào. Đầu vào thứ nhất là danh sách các số được phân tách bằng dấu phẩy (ví dụ: 10,20,30,40), còn đầu vào thứ hai là số mục tiêu cần tìm. Phân tích các số được phân tách bằng dấu phẩy thành một vector, sau đó tìm số mục tiêu. Dùng .iter().position() để tìm chỉ số của số mục tiêu, thao tác này trả về một giá trị Option<usize>. Xử lý cả hai trường hợp bằng match và in ra thông báo phù hợp.

Yêu cầu:

  • Đọc đầu vào thứ nhất (các số được phân tách bằng dấu phẩy) và loại bỏ khoảng trắng ở đầu và cuối
  • Tách đầu vào theo dấu phẩy và phân tích từng phần thành i32 để tạo một vector
  • Đọc đầu vào thứ hai (số mục tiêu) và loại bỏ khoảng trắng ở đầu và cuối
  • Phân tích số mục tiêu thành i32
  • Dùng .iter().position(|&x| x == target) để tìm số mục tiêu trong vector
  • Dùng biểu thức match để xử lý giá trị Option mà .position() trả về
  • Trong nhánh Some(index), in ra: Found at index [index]
  • Trong nhánh None, in ra: Not found

Đầu vào:

  • Dòng thứ nhất: Các số được phân tách bằng dấu phẩy (ví dụ: 10,20,30,40)
  • Dòng thứ hai: Số mục tiêu cần tìm (ví dụ: 30)

Đầu ra:

  • Nếu tìm thấy số mục tiêu: Found at index [index]
  • Nếu không tìm thấy số mục tiêu: Not found

Tự làm thử

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Đọc các số được phân tách bằng dấu phẩy
    let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // Đọc số cần tìm
    let target_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // Chuyển các số được phân tách bằng dấu phẩy thành vector
    let numbers: Vec<i32> = numbers_input
        .split(',')
        .map(|s| s.trim().parse().unwrap())
        .collect();
    
    // Chuyển số cần tìm thành số nguyên
    let target: i32 = target_input.parse().unwrap();
    
    // TODO: Viết code bên dưới
    // Dùng .iter().position() để tìm số cần tìm và match để xử lý kết quả
    
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Rust online