File tree 1 file changed +25
-23
lines changed
1 file changed +25
-23
lines changed Original file line number Diff line number Diff line change @@ -34,30 +34,32 @@ impl PartialEq for CharVec {
34
34
}
35
35
}
36
36
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
+ }
58
52
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
+ }
60
62
}
63
+ ans
61
64
}
62
- ans
63
65
}
You can’t perform that action at this time.
0 commit comments