I encounter this in Codility, so going to share my solution.
findSwapCharacterCounts = function (S) {
console.log(`Processing..`, S);
var next = 0;
while(next<S.length-1){
var char = S[next]
var next_char = S[next+1];
if(next_char==char) {
// console.log(`${char} same as ${next_char}`);
if ((next_char == S[next+1]) && (next_char === S[next+2])){
var end_char = S[next+2];
var swap_char = end_char==="a"?"b":"a";
// console.log(`index=${next+2}, swap_char=${swap_char}`);
var new_str = "";
for (var j=0; j<S.length;j++){
if (j==next+2){
new_str+=swap_char;
} else {
new_str+=S[j];
}
}
return findSwapCharacterCounts(new_str)+1;
}
} else {
// console.log(`${char} different ${next_char}`);
}
next++;
}
return 0;
}
var B_1 = "baaaaa";
var B_2 = "baaaaaa";
var B_3 = "ababababa";
var B_4 = "abbbaaab";
console.log(findSwapCharacterCounts(B_1));
console.log(findSwapCharacterCounts(B_2));
console.log(findSwapCharacterCounts(B_3));
console.log(findSwapCharacterCounts(B_4));
Top comments (0)