yiskw note

機械学習やプログラミングについて気まぐれで書きます

【Rust】二つのイテレータを同時に回す


AtCoder ABC148のB - Strings with the Same Lengthを解くにあたり,
Rustで二つのイテレータを同時に回す方法(pythonでいうzip関数)について調べたので,こちらにメモを残しておきます.

方法

RustではIterator型のzipメソッドを使用することで,二つのイテレータを同時に回すことができます.

fn main() {
    let arr1 = vec![1, 2, 3];
    let arr2 = vec![4, 5, 6];

    for (a, b) in arr1.iter().zip(arr2.iter()) {
        println!("{} {}", a, b);
    }
}

出力結果

1 4
2 5
3 6

問題の解法

use proconio::{
    input,
    marker::{Bytes, Chars},
};

fn main() {
    input! {
        n: usize,
        s: String,
        t: String,
    };

    let mut ans = String::new();
    for (a, b) in s.chars().zip(t.chars()) {
        ans.push(a);
        ans.push(b);
    }

    println!("{}", ans);
}

参考文献