File tree Expand file tree Collapse file tree 1 file changed +17
-16
lines changed
Hash/828.Count-Unique-Characters-of-All-Substrings-of-a-Given-String Expand file tree Collapse file tree 1 file changed +17
-16
lines changed Original file line number Diff line number Diff line change 1
1
class Solution {
2
- long long M = pow(10 ,9 )+7 ;
3
2
public:
4
- int uniqueLetterString (string S)
5
- {
6
- vector<vector<int >>pos (26 );
7
- int result=0 ;
8
- for (int i=0 ; i<S.size (); i++)
3
+ int uniqueLetterString (string s)
4
+ {
5
+ int n = s.size ();
6
+ vector<vector<int >>pos (26 ); // pos[k]: the pos of letter k so far (by i-th)
7
+
8
+ int ret = 0 ;
9
+ for (int i=0 ; i<n; i++)
9
10
{
10
- pos[S [i]-' A' ].push_back (i);
11
- for (int i =0 ; i <26 ; i ++)
11
+ pos[s [i]-' A' ].push_back (i);
12
+ for (int k =0 ; k <26 ; k ++)
12
13
{
13
- if (pos[i].size ()==1 )
14
- result+=pos[i][0 ]+1 ;
15
- else if (pos[i].size ()>1 )
14
+ if (pos[k].size ()>=2 )
16
15
{
17
- int k = pos[i].size ();
18
- result+=pos[i][k-1 ]-pos[i][k-2 ];
16
+ int m = pos[k].size ();
17
+ ret += pos[k][m-1 ] - pos[k][m-2 ];
18
+ }
19
+ else if (pos[k].size ()==1 )
20
+ {
21
+ ret += pos[k][0 ]+1 ;
19
22
}
20
- result = result%M;
21
23
}
22
24
}
23
- return result;
25
+ return ret;
24
26
}
25
-
26
27
};
You can’t perform that action at this time.
0 commit comments