28 lines
640 B
JavaScript
28 lines
640 B
JavaScript
// https://www.codewars.com/kata/the-deaf-rats-of-hamelin/javascript
|
|
|
|
const countDeafRats = function(town) {
|
|
const [l, r] = town.split('P');
|
|
const cnt = s => {
|
|
const c = [0, 0];
|
|
const p = ['O~', '~O'];
|
|
while (1) {
|
|
let idx = p.map(p => s.indexOf(p));
|
|
let min = Math.min(...idx);
|
|
let max = Math.max(...idx);
|
|
let sidx;
|
|
if (0 <= min) {
|
|
sidx = min;
|
|
} else if (0 <= max) {
|
|
sidx = max;
|
|
} else {
|
|
break;
|
|
}
|
|
const sp = s.slice(sidx, sidx+2);
|
|
s = s.replace(sp, '');
|
|
++c[p.indexOf(sp)];
|
|
}
|
|
return c;
|
|
};
|
|
return cnt(l)[0] + cnt(r)[1];
|
|
};
|