Number of Substrings Containing All Three Characters LeetCode solution in Java

1
class Solution {
2
public int numberOfSubstrings(String s) {
3
int a = 0, b = 0, c = 0, count = 0;
4
for (int i = 0; i < s.length(); i++) {
5
switch (s.charAt(i)) {
6
case 'a':
7
++a;
8
break;
9
case 'b':
10
++b;
11
break;
12
case 'c':
13
++c;
14
break;
15
}
16
if (a > 0 && b > 0 && c > 0) {
17
while (a > 0 && b > 0 && c > 0) {
18
char farLeft = s.charAt(i - a - b - c + 1);
19
switch (farLeft) {
20
case 'a':
21
{
22
--a;
23
count += doCount(s, i);
24
break;
25
}
26
case 'b':
27
{
28
--b;
29
count += doCount(s, i);
30
break;
31
}
32
case 'c':
33
{
34
--c;
35
count += doCount(s, i);
36
break;
37
}
38
}
39
}
40
}
41
}
42
return count;
43
}
44

45
private int doCount(String s, int i) {
46
int count = 0;
47
int n = s.length() - i;
48
if (n > 0) {
49
count += n;
50
}
51
return count;
52
}
53
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0