46 lines
1.0 KiB
Rust
46 lines
1.0 KiB
Rust
use std::io::{self, BufRead};
|
|
use std::collections::HashMap;
|
|
|
|
|
|
fn main() {
|
|
let stdin = io::stdin();
|
|
|
|
let lines = stdin.lock().lines()
|
|
.filter_map(|x| x.ok())
|
|
.collect::<Vec<_>>();
|
|
|
|
let mut count: Vec<HashMap<char, u16>> = vec![HashMap::new(); 1024];
|
|
|
|
for line in lines {
|
|
for (i, ch) in line.chars().enumerate() {
|
|
*count[i].entry(ch).or_insert(0) += 1;
|
|
}
|
|
}
|
|
|
|
let corrected_most: String = count.iter()
|
|
.filter_map(|x| {
|
|
let mut vec: Vec<_> = x.iter().collect();
|
|
|
|
vec.sort_by_key(|k| k.1);
|
|
|
|
vec.pop()
|
|
})
|
|
.map(|x| *x.0)
|
|
.collect();
|
|
|
|
let corrected_least: String = count.iter()
|
|
.filter_map(|x| {
|
|
let mut vec: Vec<_> = x.iter().collect();
|
|
|
|
vec.sort_by_key(|k| k.1);
|
|
vec.reverse();
|
|
|
|
vec.pop()
|
|
})
|
|
.map(|x| *x.0)
|
|
.collect();
|
|
|
|
println!("corrected_most={}", corrected_most);
|
|
println!("corrected_least={}", corrected_least);
|
|
}
|