public static int NumberOfSubstringWithKDistinct(String s, int k) {
// sanity check
if (s == null || s.length() == 0 || k == 0) {
return 0;
}
int[] numberOfChracter = new int[26];
int res = 0;
for (int i = 0; i < s.length(); i++) {
curSize = 1;
for (ResultNode childResult : results) {
curTotal += childResult.sum;
curSize += childResult.size;
}
if (result[0] == null || result[0].sum * curSize < curTotal * result[0].size ) {
result[0] = new ResultNode(root, curTotal, curSize);
}
return result[0];
}