Skip to content

Commit 019038b

Browse files
authored
Add anagram check (TheAlgorithms#393)
1 parent fea47d0 commit 019038b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/string/anagram.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
pub fn check_anagram(s: &str, t: &str) -> bool {
2+
let mut s = s.to_ascii_lowercase().chars().collect::<Vec<_>>();
3+
let mut t = t.to_ascii_lowercase().chars().collect::<Vec<_>>();
4+
s.sort_unstable();
5+
t.sort_unstable();
6+
s == t
7+
}
8+
9+
#[cfg(test)]
10+
mod tests {
11+
use super::*;
12+
13+
#[test]
14+
fn test_check_anagram() {
15+
assert!(check_anagram("anagram", "nagaram"));
16+
assert!(!check_anagram("rat", "car"));
17+
assert!(check_anagram("abcde", "edcba"));
18+
assert!(check_anagram("sIlEnT", "LiStEn"));
19+
}
20+
}

src/string/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
mod aho_corasick;
2+
mod anagram;
23
mod boyer_moore_search;
34
mod burrows_wheeler_transform;
45
mod hamming_distance;
@@ -14,6 +15,7 @@ mod suffix_tree;
1415
mod z_algorithm;
1516

1617
pub use self::aho_corasick::AhoCorasick;
18+
pub use self::anagram::check_anagram;
1719
pub use self::boyer_moore_search::boyer_moore_search;
1820
pub use self::burrows_wheeler_transform::{
1921
burrows_wheeler_transform, inv_burrows_wheeler_transform,

0 commit comments

Comments
 (0)