Menu
Coddy logo textTech

Recapitulação - Encontrar um Elemento

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 41 de 66.

challenge icon

Desafio

Fácil

Você receberá duas entradas. A primeira entrada é uma lista de números separados por vírgulas (ex: 10,20,30,40), e a segunda entrada é um número alvo para pesquisar. Analise os números separados por vírgulas em um vetor e, em seguida, procure pelo número alvo. Use .iter().position() para encontrar o índice do número alvo, que retorna um Option<usize>. Trate ambos os casos usando match e imprima a mensagem apropriada.

Requisitos:

  • Leia a primeira entrada (números separados por vírgulas) e remova os espaços em branco
  • Divida a entrada por vírgulas e analise cada parte em i32 para criar um vetor
  • Leia a segunda entrada (número alvo) e remova os espaços em branco
  • Analise o número alvo para i32
  • Use .iter().position(|&x| x == target) para procurar o alvo no vetor
  • Use uma expressão match para tratar o Option retornado por .position()
  • No braço Some(index), imprima: Found at index [index]
  • No braço None, imprima: Not found

Entrada:

  • Primeira linha: Números separados por vírgulas (ex: 10,20,30,40)
  • Segunda linha: Um número alvo para pesquisar (ex: 30)

Saída:

  • Se o alvo for encontrado: Found at index [index]
  • Se o alvo não for encontrado: Not found

Experimente você mesmo

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Leia os números separados por vírgula
    let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // Leia o número alvo
    let target_input = lines.next().unwrap().unwrap().trim().to_string();
    
    // Analise os números separados por vírgula em um vetor
    let numbers: Vec<i32> = numbers_input
        .split(',')
        .map(|s| s.trim().parse().unwrap())
        .collect();
    
    // Analise o número alvo
    let target: i32 = target_input.parse().unwrap();
    
    // TODO: Escreva seu código abaixo
    // Use .iter().position() para encontrar o alvo e match para lidar com o resultado
    
}

Todas as lições de Logic & Flow