rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

use std::collections::HashMap;

impl Solution {
    fn is_isomorphic(s: String, t: String) -> bool {
        let mut hmst: HashMap<char, char> = HashMap::new();
        let mut hmts: HashMap<char, char> = HashMap::new();
        let mut is = s.chars();
        let mut it = t.chars();
        while let (Some(cs), Some(ct)) = (is.next(), it.next()) {
            if let Some(&vt) = hmst.get(&cs) {
                if vt != ct {
                    return false;
                }
            } else {
                hmst.insert(cs, ct);
            }
            if let Some(&vs) = hmts.get(&ct) {
                if vs != cs {
                    return false;
                }
            } else {
                hmts.insert(ct, cs);
            }
        }
        true
    }
}

#[test]
fn test() {
    let s = "egg".to_string();
    let t = "add".to_string();
    assert_eq!(Solution::is_isomorphic(s, t), true);
    let s = "foo".to_string();
    let t = "bar".to_string();
    assert_eq!(Solution::is_isomorphic(s, t), false);
    let s = "paper".to_string();
    let t = "title".to_string();
    assert_eq!(Solution::is_isomorphic(s, t), true);
}