JavaScriptを使用して迷路の終わりへのパスを見つける
問題
N*N次の行列をとるJavaScript関数を書く必要があります。マトリックスの壁は「W」でマークされ、空の位置は「_」でマークされます
いつでも4方向のいずれかに移動できます。関数は、最後に到達できる場合はtrueを返し、それ以外の場合はfalseを返す必要があります。
例
以下はコードです-
const maze = [
['_', 'W', 'W', 'W'],
['_', 'W', 'W', 'W'],
['W', '_', '_', 'W'],
['W', 'W', 'W', '_']
];
const canFindPath = (m = []) => {
let h = m.length;
let w = m[0].length;
let queue = [[0, 0]];
let mark = (xx, yy) => {
[[1, 0], [-1, 0], [0, 1], [0, -1], [0, 0]].map(p => {
let [x, y] = [p[0]+xx, p[1]+yy];
if (0 <= x && x < w) {
if (0 <= y && y < h) {
if (m[y][x] === '.') {
m[y][x] = '#';
queue.push([x, y]);
}
}
}
});
};
do {
let p = queue.shift();
mark(...p);
} while (queue.length);
return m[h-1][w-1] !== '.';
};
console.log(canFindPath(maze)); 出力
true
-
JavaScriptを使用してアルファベットの文字の1ベースのインデックスを検索する
問題 小文字の英語の英字を使用するJavaScript関数を作成する必要があります。この関数は、文字の1ベースのインデックスをアルファベットで返す必要があります。 例 以下はコードです- const char = 'j'; const findCharIndex = (char = '') => { const legend = ' abcdefghijklmnopqrstuvwxyz'; if(!char || !legend.includes(char) || char.lengt
-
JavaScriptを使用して配列内で最も頻繁に使用される単語を検索する
問題 最初の引数として英語の小文字のアルファベットの文字列の配列arrを受け取るJavaScript関数を作成する必要があります。関数の2番目の引数は、数値num(num