Skip to content

Commit 95c5f79

Browse files
Wrapping in Solution implementation block expected by leetcode
1 parent ce7a566 commit 95c5f79

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

Diff for: rust/0438-find-all-anagrams-in-a-string.rs

+25-23
Original file line numberDiff line numberDiff line change
@@ -34,30 +34,32 @@ impl PartialEq for CharVec {
3434
}
3535
}
3636

37-
fn find_anagrams(s: String, p: String) -> Vec<i32> {
38-
let (s_len, p_len) = (s.len(), p.len());
39-
let mut ans = vec![];
40-
if s_len < p_len {
41-
return ans;
42-
}
43-
let mut freq_s = CharVec::new();
44-
let mut freq_p = CharVec::new();
45-
let s = s.chars().collect::<Vec<char>>();
46-
let p = p.chars().collect::<Vec<char>>();
47-
for i in 0..p_len {
48-
freq_s[s[i]] += 1;
49-
freq_p[p[i]] += 1;
50-
}
51-
if freq_s == freq_p {
52-
ans.push(0);
53-
}
54-
/* sliding window with of length p_len */
55-
for i in p_len..s_len {
56-
freq_s[s[i - p_len]] -= 1;
57-
freq_s[s[i]] += 1;
37+
impl Solution {
38+
fn find_anagrams(s: String, p: String) -> Vec<i32> {
39+
let (s_len, p_len) = (s.len(), p.len());
40+
let mut ans = vec![];
41+
if s_len < p_len {
42+
return ans;
43+
}
44+
let mut freq_s = CharVec::new();
45+
let mut freq_p = CharVec::new();
46+
let s = s.chars().collect::<Vec<char>>();
47+
let p = p.chars().collect::<Vec<char>>();
48+
for i in 0..p_len {
49+
freq_s[s[i]] += 1;
50+
freq_p[p[i]] += 1;
51+
}
5852
if freq_s == freq_p {
59-
ans.push((i - p_len + 1) as i32);
53+
ans.push(0);
54+
}
55+
/* sliding window with of length p_len */
56+
for i in p_len..s_len {
57+
freq_s[s[i - p_len]] -= 1;
58+
freq_s[s[i]] += 1;
59+
if freq_s == freq_p {
60+
ans.push((i - p_len + 1) as i32);
61+
}
6062
}
63+
ans
6164
}
62-
ans
6365
}

0 commit comments

Comments
 (0)