解题思路:
Vec
+ HashMap
,数组用来存储每种字符的单个样例以保证顺序,HashMap用来存储每个字符的个数,按Vec
顺序查询对应字符个数,遇见单个则立即输出,最后验证是否全不为单个。
use std::collections::HashMap;
use std::io::{self, *};
fn main() {
let stdin = io::stdin();
for line in stdin.lock().lines() {
let ll = line.unwrap();
let mut hm: HashMap<u8, u8> = HashMap::new();
let mut v = vec![];
for i in ll.trim().as_bytes() {
if !v.contains(i) {
v.push(*i);
}
if hm.contains_key(i){
if let Some(value) = hm.get_mut(i) {
*value += 1;
}
}else {
hm.insert(*i, 1);
}
}
let mut k = 0;
for i in v.iter() {
if let Some(num) = hm.get(i){
if *num == 1 {
println!("{}",char::from(*i));
break;
}
}
k += 1;
}
if k == v.len() {
println!("-1");
}
}
}