LINUX.ORG.RU

История изменений

Исправление anonymous-angler, (текущая версия) :

Rust. Для указанных примеров работает. Для всего остального - условие слишком жидкое.

use std::io::{stdin, BufRead, BufReader};

fn main() {
    'outter: for line in BufReader::new(stdin()).lines() {
        let line = line.expect("Error while reading a line").replace('+', " ");
        let (first, second) = line
            .split_once(char::is_whitespace)
            .map(|(s1, s2)| (s1, s2.trim_start()))
            .expect("Error while extracting strings");

        for i in 0..first.len() {
            if second.as_bytes().starts_with(&first.as_bytes()[i..]) {
                println!("{}{}", &first[..i], second);
                continue 'outter;
            }
        }

        println!("{}{}", first, second);
    }
}

Исходная версия anonymous-angler, :

Rust. Для указанных примеров работает. Для всего остальное - условие слишком жидкое.

use std::io::{stdin, BufRead, BufReader};

fn main() {
    'outter: for line in BufReader::new(stdin()).lines() {
        let line = line.expect("Error while reading a line").replace('+', " ");
        let (first, second) = line
            .split_once(char::is_whitespace)
            .map(|(s1, s2)| (s1, s2.trim_start()))
            .expect("Error while extracting strings");

        for i in 0..first.len() {
            if second.as_bytes().starts_with(&first.as_bytes()[i..]) {
                println!("{}{}", &first[..i], second);
                continue 'outter;
            }
        }

        println!("{}{}", first, second);
    }
}