1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-19 01:36:57 +02:00

rs: add «205. Isomorphic Strings»

Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
Matej Focko 2024-04-05 23:46:19 +02:00
parent 04ecc74e91
commit c505df78fa
Signed by: mfocko
GPG key ID: 7C47D46246790496

27
rs/isomorphic-strings.rs Normal file
View file

@ -0,0 +1,27 @@
use std::collections::{HashMap, HashSet};
impl Solution {
pub fn is_isomorphic(s: String, t: String) -> bool {
let mut projection: HashMap<char, char> = HashMap::new();
let mut used: HashSet<char> = HashSet::new();
for (l, r) in s.chars().zip(t.chars()) {
match projection.get(&l) {
Some(&expected_r) if expected_r != r => {
return false;
}
None => {
if used.contains(&r) {
return false;
}
projection.insert(l, r);
used.insert(r);
}
_ => { /* no-op */ }
}
}
true
}
}