Equal 0, 1 and 2 Substrings

by Erick Petrucelli

TypeScript

function countSubstrWithEqual012(str) {
	let count = 0;
  const checked = [];
  const equalsCharCount = (s1, s2) => {
  	return s1.split('').sort().join('') === s2.split('').sort().join('');
  }
	for (let i = 0; i < str.length - 3; i++) {
  	const substring = str.substr(i, 3);
    for (let j = i + 1; j < str.length - 2; j++) {
      const guess = str.substr(j, 3);
      if (equalsCharCount(substring, guess)) {
	      count++;
      }
    }
  }
  return count
}

function log(input, expected) {
  document.write(
    `<pre>${input}: <b>${JSON.stringify(countSubstrWithEqual012(input))}</b> <small>// ${expected}</small></pre>`,
  )
}

log('0102010', 2)
log('11100022', 0)
log('1212101111', 1)
log('1001112021', 2)