MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / anagram_solution3

Function anagram_solution3

publication/code/chapter03/anagram_solution3.rs:3–28  ·  view source on GitHub ↗
(s1: &str, s2: &str)

Source from the content-addressed store, hash-verified

1// anagram_solution3.rs
2
3fn anagram_solution3(s1: &str, s2: &str) -> bool {
4 if s1.len() != s2.len() {
5 return false;
6 }
7
8 // s1 和 s2 中的字符分别加入 vec_a, vec_b 并排序
9 let mut vec_a = Vec::new();
10 let mut vec_b = Vec::new();
11 for c in s1.chars() { vec_a.push(c); }
12 for c in s2.chars() { vec_b.push(c); }
13 vec_a.sort();
14 vec_b.sort();
15
16 // 逐个比较排序的集合,任何字符不匹配就退出循环
17 let mut pos: usize = 0;
18 let mut is_anagram = true;
19 while pos < vec_a.len() && is_anagram {
20 if vec_a[pos] == vec_b[pos] {
21 pos += 1;
22 } else {
23 is_anagram = false;
24 }
25 }
26
27 is_anagram
28}
29
30fn main() {
31 let s1 = "rust";

Callers 1

mainFunction · 0.70

Calls 3

lenMethod · 0.45
pushMethod · 0.45
sortMethod · 0.45

Tested by

no test coverage detected