1
Fork 0
leetcode/source/valid_anagram/mod.rs

32 lines
770 B
Rust
Raw Normal View History

2022-04-08 12:59:10 +00:00
pub fn is_anagram(a: String, b: String) -> bool {
// Both strings must have the same length otherwise they can't be anagrams.
if a.len() != b.len() {
return false;
}
// Sort both strings' characters so they're in alphabetical order.
let mut a = a.chars().collect::<Vec<_>>();
a.sort();
let mut b = b.chars().collect::<Vec<_>>();
b.sort();
// And if they are equal, then they're anagrams.
a == b
}
#[test]
fn test_valid_anagram() {
let samples = [
(("💖🌠banana", "an💖anab🌠"), true),
(("anagram", "nagaram"), true),
(("bats", "tabs"), true),
(("rat", "cat"), false),
(("bats", "bat"), false),
];
for ((a, b), expected) in samples {
assert_eq!(is_anagram(a.to_string(), b.to_string()), expected);
}
}