Number of Substrings Containing All Three Characters LeetCode solution in Java
1class Solution {2public int numberOfSubstrings(String s) {3int a = 0, b = 0, c = 0, count = 0;4for (int i = 0; i < s.length(); i++) {5switch (s.charAt(i)) {6case 'a':7++a;8break;9case 'b':10++b;11break;12case 'c':13++c;14break;15}16if (a > 0 && b > 0 && c > 0) {17while (a > 0 && b > 0 && c > 0) {18char farLeft = s.charAt(i - a - b - c + 1);19switch (farLeft) {20case 'a':21{22--a;23count += doCount(s, i);24break;25}26case 'b':27{28--b;29count += doCount(s, i);30break;31}32case 'c':33{34--c;35count += doCount(s, i);36break;37}38}39}40}41}42return count;43}4445private int doCount(String s, int i) {46int count = 0;47int n = s.length() - i;48if (n > 0) {49count += n;50}51return count;52}53}