编辑代码

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
  const n = Number(await readline());
  const matrix = [];
  for (let i = 0; i < n; i++) {
    const row = (await readline()).split(",");
    matrix.push(row);
  }
  const word = await readline();
  const path = [];
  const used = new Array(n).fill(0).map(() => new Array(n).fill(false));
  const dfs = (i, j, k) => {
    if (
      i < 0 ||
      j < 0 ||
      i >= n ||
      j >= n ||
      matrix[i][j] !== word[k] ||
      used[i][j]
    )
      return false;
    path.push(`${i},${j}`);
    if (path.length == word.length) return true;
    used[i][j] = true;
    const res =
      dfs(i - 1, j, k + 1) ||
      dfs(i + 1, j, k + 1) ||
      dfs(i, j - 1, k + 1) ||
      dfs(i, j + 1, k + 1);
    if (!res) {
      path.pop();
      used[i][j] = false;
    }
    return res;
  };
  for (let i = 0; i < n; i++) {
    for (let j = 0; j < n; j++) {
      if (dfs(i, j, 0)) {
        return console.log(path.join(","));
      }
    }
  }
  console.log("N");
})();