1
var kSimilarity = function (s1, s2) {3
// swap from 0: a !== b, find next b, swap(0,1) --> bac4
// swap from 1: a !== c, find next c, swap(1,2) --> bca10
const visited = new Set();12
queue.push([a, 0, 0]); // str, idx, swapCount13
while (queue.length > 0) {14
let [s, idx, cnt] = queue.shift();15
while (s[idx] === b[idx]) {18
for (let j = idx + 1; j < s.length; j++) {19
if (s[j] === b[idx]) {26
if (!visited.has(s)) {27
queue.push([s.slice(), idx, cnt + 1]);28
visited.add(s.slice());31
// swap back for later index39
const swap = (s, i, j) => {40
let arr = s.split("");