use proconio::input; fn main() { input! { x: String, y: String, } match solve(&x, &y) { Some(ans) => println!("{}", ans), None => println!("?"), } } fn solve(x: &str, y: &str) -> Option { if x.len() != y.len() && x.len() != y.len() + 1 { return None; } let mut alternate: String = x .chars() .zip(y.chars()) .flat_map(|(c1, c2)| [c1, c2]) .collect(); if x.len() > y.len() { alternate.push(x.chars().last().unwrap()); } Some(alternate) }