48 lines
948 B
Rust
48 lines
948 B
Rust
/**
|
|
* [1436] Destination City
|
|
*/
|
|
pub struct Solution {}
|
|
|
|
// submission codes start here
|
|
|
|
impl Solution {
|
|
pub fn dest_city(paths: Vec<Vec<String>>) -> String {
|
|
use std::collections::HashMap;
|
|
|
|
let mut out_map = HashMap::new();
|
|
|
|
for path in paths.iter() {
|
|
let start_entry = out_map.entry(&path[0]).or_insert(0);
|
|
*start_entry += 1;
|
|
|
|
out_map.entry(&path[1]).or_insert(0);
|
|
}
|
|
|
|
out_map
|
|
.iter()
|
|
.filter(|(_, &v)| v == 0)
|
|
.map(|(k, _)| k.to_string())
|
|
.next()
|
|
.unwrap()
|
|
}
|
|
}
|
|
|
|
// submission codes end
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn test_1436() {
|
|
assert_eq!(
|
|
"A".to_owned(),
|
|
Solution::dest_city(vec![
|
|
vec_string!("B", "C"),
|
|
vec_string!("D", "B"),
|
|
vec_string!("C", "A")
|
|
])
|
|
);
|
|
}
|
|
}
|