use std::collections::HashMap;
fn are_anagram(s1: &str, s2: &str) -> bool {
if s1.len() != s2.len() {
return false;
}
let mut freq = HashMap::new();
for ch in s1.chars() {
*freq.entry(ch).or_insert(0) += 1;
}
for ch in s2.chars() {
match freq.get_mut(&ch) {
Some(count) => {
*count -= 1;
if *count == 0 {
freq.remove(&ch);
}
}
None => return false,
}
}
freq.is_empty()
}
fn main() {
println!("{}", if are_anagram("rust", "surt") { "yes" } else { "no" });
println!("{}", if are_anagram("rust", "stur") { "yes" } else { "no" });
println!("{}", if are_anagram("rust", "rush") { "yes" } else { "no" });
}
/*
run:
yes
yes
no
*/