Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでマトリックス内の単語を検索する


最初の引数として文字の配列の配列を取り、2番目の引数として文字列を受け取るJavaScript関数を作成する必要があります。

関数は、マトリックスに文字が存在するかどうかを確認する必要があります。文字を繰り返さない組み合わせにより、2番目の引数として関数に提供される文字列が生成されます。

そのような組み合わせが存在する場合、関数はtrueを返し、そうでない場合はfalseを返す必要があります。

例-

入力配列と文字列が-

の場合
const arr = [
   ['s', 'd', 'k', 'e'],
   ['j', 'm', 'o', 'w'],
   ['y', 'n', 'l']
];
const str = 'don';

その場合、出力は-

になります。
const output = false;

以下はコードです-

const arr = [
   ['s', 'd', 'k', 'e'],
   ['j', 'm', 'o', 'width'],
   ['y', 'n', 'l']
];
const str = 'don';
const containsWord = (arr = [], str = '') => {
   if (arr.length === 0){
      return false;
   };
   const height = arr.length;
   const width = arr[0].length;
   const dirs = [[-1, 0], [0, 1], [1, 0], [0, -1]];
   const tryWord = (x, y, k) => {
      if (arr[x][y] !== str[k]) return false;
      if (k === str.length - 1) return true;
      arr[x][y] = '*';
      for (const [dx, dy] of dirs) {
         const i = x + dx;
         const j = y + dy;
         if (i >= 0 && i < height && j >= 0 && j < width) {
            if (tryWord(i, j, k + 1)) return true;
         }
      }
      arr[x][y] = str[k]; // reset
      return false;
   };
   for (let i = 0; i < height; i++) {
      for (let j = 0; j < width; j++) {
         if (tryWord(i, j, 0)) return true;
      }
   }
   return false;
};
console.log(containsWord(arr, str));

出力

以下はコンソール出力です-

false

  1. JavaScriptConst

    JavaScriptのconst宣言は、他の値に再割り当てしたり、後で再宣言したりできない変数を作成します。 ES2015で導入されました。 以下はJavaScriptconst宣言のコードです- 例 <!DOCTYPE html> <html> <head> <style>    body {       font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;    } </sty

  2. JavaScriptでのConstとLet。

    Constとletは、ブロックスコープの変数を宣言するためにES2015で導入されました。 letを使用して宣言された変数は再割り当てできますが、constを使用して宣言された場合は再割り当てできません。 以下は、JavaScriptでletとconstを示すコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="wi