use std::collections::HashMap;
fn main() {
let s = "xzvxdeshaalzxzmdenlopxzxzxzaaqdewrzaaaapeerxzxz";
let result = find_most_common_pair(s);
println!("The most common pair: {:?}", result);
println!("The most common pair: {:?}", result.as_ref().unwrap());
println!("The most common pair: {:?}", result.unwrap());
}
fn find_most_common_pair(s: &str) -> Option<String> {
let mut pair_counts = HashMap::new();
for chars in s.chars().zip(s.chars().skip(1)) {
let pair = format!("{}{}", chars.0, chars.1);
*pair_counts.entry(pair).or_insert(0) += 1;
}
pair_counts
.into_iter()
.max_by_key(|(_, count)| *count)
.map(|(pair, _)| pair)
}
/*
run:
The most common pair: Some("xz")
The most common pair: "xz"
The most common pair: "xz"
*/