JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptで「良い基数(Good Base)」の最小値を求めるアルゴリズム

    良い基数(Good Base)とは= 2)のことを「良い基数(Good Base)」と呼びます。例えば、13 を基数 3 で表すと 111 となるため、3 は num = 13 における良い基数です。問題の概要数値を表す文字列 str を唯一の引数として受け取り、str の良い基数となる最小の数値を文字列形式で返す JavaScript 関数を作成する必要があります。例えば、関数への入力が以下の場合:const str = "4681";出力は次のようになります。const output = "8";出力の説明これは、4681 を基数 8 で表すと 11

  2. JavaScriptでライセンスキーを整形する方法:ダッシュ区切りと大文字変換の実装

    問題文字列strを第1引数、整数nを第2引数として受け取るJavaScript関数を作成する必要があります。文字列strは英数字とダッシュ(ハイフン)で構成されています。ダッシュは、文字列内の英数字をグループに分割する役割を果たします。つまり、ダッシュがn個あれば、文字列はn+1個のグループに分割されます。しかし、与えられた文字列内のダッシュは、正しい位置に配置されていない可能性があります。私たちが目指すのは、各グループの文字数をKに揃えることです。ただし、最初のグループだけは例外で、Kより短くても構いませんが、少なくとも1文字は含まれている必要があります。この要件を満たすためには、ダッシュを

  3. マジックストリング(魔法の文字列)問題をJavaScriptで解く方法

    マジックストリングの問題概要マジックストリング(魔法の文字列)とは、「1」と「2」だけから構成され、次の性質を持つ特別な文字列です。この文字列が「マジック(魔法)」と呼ばれるのは、連続する「1」や「2」のかたまり(グループ)ごとの出現回数をつなぎ合わせると、元の文字列そのものが再現されるからです。文字列 str の最初の部分は次のようになっています。str = 1221121221221121122……str 内の連続した「1」「2」をそれぞれグループに分けると、次のようになります。1 22 11 2 1 22 1 22 11 2 11 22 ……さらに、各グループにおける「1」または「2」の

  4. JavaScriptで配列内の3番目に大きい数値を取得する方法

    JavaScriptでは、数値の配列を第1引数(唯一の引数)として受け取る関数を作成することが求められます。この関数の役割は、配列の中から3番目に大きい数値を選び出して返すことです。もし配列内に3番目に大きい数値が存在しない場合(ユニークな数値が3つ未満の場合)は、代わりに配列の最大値を返します。具体例たとえば、入力配列が以下のようになっているとします。const arr = [34, 67, 31, 87, 12, 30, 22];この場合、数値を降順に並べると「87 → 67 → 34」となるため、期待される出力は次のとおりです。const output = 34;実装コードこの処理を実現

  5. JavaScriptでキットカット(KitKat)配列を実装する方法

    キットカット配列とは「キットカット配列」は、有名なプログラミング課題であるFizzBuzz問題の応用版です。本記事では、JavaScriptを使ってこの問題を解く方法をわかりやすく解説します。求められるのは、第1引数に自然数 num を、第2・第3引数に自然数 m と n を受け取るJavaScript関数を作成することです。この関数は、1から num まで(num 自身を含む)のすべての自然数を昇順に格納した配列を返します。ただし、以下のルールに従って、特定の数値を文字列に置き換える必要があります。m の倍数の場合 → 文字列 kit に置き換えるn の倍数の場合 → 文字列 kat に置き

  6. JavaScriptで自然数列のn番目の桁を求める方法

    自然数列とは 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12… このように無限に続く数の並びを「自然数列」と呼びます。カンマや空白を取り除いて連結すると、「123456789101112…」という一続きの桁の並びになります。 問題の概要 数値 num を唯一の引数として受け取るJavaScript関数を作成します。この関数は、自然数列をカンマや空白なしで連結したときに現れる num 番目の桁の数字を求め、その値を返す必要があります。 例 入力が次の場合: const num = 13; 出力は次のようになります: const output = 1; これは、連結さ

  7. JavaScriptで「+」「-」「*」「/」を使わずに2つの数値の合計を求める方法

    JavaScriptで、2つの数値 m と n を引数として受け取る関数 add() を作成する必要があります。この関数は、四則演算(加算・減算・乗算・除算)を使用せずに入力された2つの数値を加算し、その合計を返すものです。 実装例 実際のコードは以下のようになります。 const m = 67, n = 33; const add = (x, y) => { while(y !== 0){ let carry = x & y; x = x ^ y; y = carry << 1; }; retu

  8. JavaScriptで「美しい配置」を数える:バックトラッキングによる効率的な解法

    美しい配置(Beautiful Arrangement)とは?1からnumまでのnum個の整数があるとします。これらの整数を使って構成される配列が「美しい配置」であるためには、配列のi番目の位置(1 ≦ i ≦ N)について、次のいずれかの条件が満たされている必要があります。i番目の位置にある数値が、iで割り切れる。iが、i番目の位置にある数値で割り切れる。問題数値numを受け取り、そのnumに対して構築できる「美しい配置」の総数を返すJavaScript関数を作成してください。例えば、関数への入力が次の場合:const input = 2;期待される出力は次のとおりです。const outp

  9. JavaScriptで0と1が同数含まれる最長の連続部分配列を求める方法

    問題二進配列(0と1のみで構成される配列)arr を引数として受け取り、0と1の個数が等しくなる連続する部分配列のうち、最長のものの長さを返すJavaScript関数を作成します。例えば、次の入力が与えられた場合を見てみましょう。const arr = [1, 0, 0, 1, 0, 1, 0, 0];この場合の出力は次のようになります。const output = 6;出力の説明配列の最初の6要素は「1, 0, 0, 1, 0, 1」です。ここには1が3つ、0が3つ含まれており、条件を満たす最長の連続部分配列となっているため、答えは6になります。サンプルコードこの問題を解くコードは以下の通り

  10. JavaScriptで文字列から形成できる最長の単語を見つける方法

    問題 JavaScriptで関数を記述する必要があります。この関数は、第1引数としてランダムな英字からなる文字列 str を、第2引数として文字列の配列 arr を受け取ります。 関数の役割は、文字列 str からいくつかの文字を削除したときに、配列 arr にも存在する最長の単語を作れるかどうかを調べることです。そして、作成可能な最長の文字列を返します。 該当する文字列が存在しない場合は、空文字列を返す必要があります。 例えば、関数への入力が以下の場合を考えてみましょう。 const str = sdgfdfghdjh; const arr = [sdf, fghj, gfdfg, absc

  11. JavaScriptで合計がkの倍数となる長さ2以上の連続部分配列を判定する方法

    問題整数の配列 arr を第一引数に、単一の整数 target を第二引数として受け取る JavaScript 関数を作成します。この関数は、長さが少なくとも 2 以上である連続する部分配列(サブアレイ)の中に、要素の合計が target の倍数(すなわち n × target、n は任意の整数)となるものが存在するかどうかを判定します。条件を満たす部分配列が存在すれば true を、存在しなければ false を返します。たとえば、関数への入力が次の場合を考えてみましょう。const arr = [23, 2, 6, 4, 7]; const target = 6;このとき、出力は次のように

  12. JavaScriptで文字列配列の最長の非共通部分列(Longest Uncommon Subsequence)を求める方法

    部分列(Subsequence)とはまず用語を整理しましょう。「部分列」とは、元の文字列から一部の文字を削除して得られる列であり、残りの文字の相対的な順序は変更しないものを指します。たとえば「ace」は「abcde」の部分列ですが、「aec」は順序が異なるため部分列ではありません。なお、任意の文字列はそれ自身の部分列として扱われ、空文字列はあらゆる文字列の部分列であると定義します。問題の定義今回求めるのは、次のようなJavaScript関数です。引数として文字列の配列を1つ受け取る配列内のいずれかの文字列の部分列でありながら、他のどの文字列の部分列でもないような「非共通部分列」のうち、最も長い

  13. JavaScriptで学ぶ二分探索木(BST)の実装方法をわかりやすく解説

    本記事では、JavaScriptを使って二分探索木(Binary Search Tree、BST)を実装する手順を、初心者にもわかるように段階的に解説します。まずは基本となる「ツリー構造」の概念から確認していきましょう。 ツリー構造とは ツリー(木構造)は、ノードと呼ばれる要素がエッジ(辺)によって接続されたデータ構造です。一般的に、各ノードは何らかのデータと、その子ノードへの参照を保持します。 二分探索木(BST)とは 二分探索木とは、各ノードが最大2つの子を持つ「二分木」の一種で、次のルールに従ってノードを配置するデータ構造です。 親ノードより小さい値は左側の子ノードに配置する 親ノード

  14. JavaScriptで文中の最頻出単語を上位n個抽出する方法

    本記事では、JavaScriptを使って、与えられた文章(sentence)の中から最も出現頻度の高い単語を、指定した個数だけ抽出して返す方法を解説します。ここでの定義は以下の通りです。「文」とは英字アルファベットおよび句読点を含む文字列であり、「単語」とはその文の中で空白文字によって区切られる部分文字列を指します。求められている処理作成するJavaScript関数は、第一引数として文章の文字列 str を、第二引数として数値 num を受け取ります。この関数は、まず文内の各単語の出現回数をカウントし、次に出現頻度の高い順(降順)に並べた上位 num 個の単語を配列として返す必要があります。入

  15. 【JavaScript】文字列から最大1文字削除して回文を作れるかどうかを判定する方法

    はじめにJavaScriptでは、文字列を第1引数(唯一の引数)として受け取る関数を書くことが求められる場面があります。この関数の役割は、文字列から最大1文字だけ削除することで、その文字列を回文(前から読んでも後ろから読んでも同じ文字列)にできるかどうかを判定することです。回文にできる場合は true を、できない場合は false を返します。具体例たとえば、入力文字列が次のようになっているとします。const str = kjlk;この場合、期待される出力は次のとおりです。const output = true;なぜなら、文字列から「l」を1文字削除すると「kjk」が残り、これは回文だから

  16. PHPとJavaScriptの違いとは?特徴・実行環境・使い分けを徹底解説

    はじめに 本記事では、Web開発で広く使われる2つのプログラミング言語——PHPとJavaScriptの主な違いについて詳しく解説します。それぞれの特徴や動作環境を理解することで、プロジェクトに応じた適切な言語選択ができるようになります。 JavaScriptの特徴 フロントエンドとバックエンドの両方を担当可能:ブラウザ上のUI制御から、Node.jsを使ったサーバーサイド処理まで幅広く対応できます。 非同期処理に対応:入出力操作の完了を待たずに次の処理へ進むため、レスポンスの速いアプリケーションを構築できます。 実行環境が柔軟:ブラウザで直接実行できるほか、「Node.js」の登場以降は

  17. JavaScriptで最大1回のスワップで作れる最大の数を求める方法

    JavaScriptで、数値を第1引数(唯一の引数)として受け取り、その数値の任意の2桁を最大1回だけ入れ替えたときに作れる最大の数を返す関数を実装します。すでにその数が可能な最大値である場合は、元の数をそのまま返します。 問題の例 入力が 1625 の場合を考えてみましょう。先頭の「1」と「6」を入れ替えることで 6125 が得られます。これが1回のスワップで作れる最大の数です。 const num = 1625; // 出力: 6125 解決策:貪欲法によるアプローチ この問題は貪欲法(Greedy法)を使うことで効率的に解けます。基本的な手順は以下のとおりです。 1. 数値を左から順に走

  18. JavaScriptで数値が2つの平方数の和として表せるか判定する方法

    平方数(完全平方数)とは?数学において、ある自然数が別の自然数とそれ自身との積で表されるとき、その数を平方数(完全平方数)と呼びます。例えば、9、16、81、289 はすべて平方数です。9 = 3 × 316 = 4 × 481 = 9 × 9289 = 17 × 17問題の定義自然数 num を引数として受け取るJavaScript関数を作成します。この関数は、次の条件を満たす2つの数 m と n が存在するかどうかを判定する必要があります。(m * m) + (n * n) = numそのような数の組み合わせが存在すれば true を、存在しなければ false を返します。例入力が以下の

  19. 【JavaScript】行列の中で最も長い連続する1のラインを見つける方法

    問題の概要 本記事では、0と1のみで構成された2次元配列(バイナリ行列)の中から、最も長く連続する「1」のラインを見つけるJavaScript関数の実装方法を解説します。まず、次のようなバイナリ行列を例に考えてみましょう。 const arr = [    [0,1,1,0],    [0,1,1,0],    [0,0,0,1] ]; 作成する関数は、このような行列を第一引数(唯一の引数)として受け取ります。そして、水平・垂直・斜め・逆斜めのいずれかの方向に並んだ連続する「1」の最長ラインを検索し、その

  20. JavaScriptでバイナリ行列内の最も近い0までの距離を求めるアルゴリズム

    バイナリ行列とは、0 または 1 のみを要素として持つ配列(配列の配列)のことです。本記事では、JavaScript を使って、与えられたバイナリ行列に対し「各セルから最も近い 0 までの距離」を格納した新しい行列を作成する関数を実装する方法を解説します。 問題の概要 今回実装する JavaScript 関数は、バイナリ行列を唯一の引数として受け取り、以下の条件を満たす新しい行列を返します。 元の行列と同じ行数・列数を持つ 各セルには、元の行列におけるその位置から最も近い 0 までの距離が格納される 距離の計算は上下左右(水平・垂直)方向のみで移動できるものとし、斜め移動は考慮しない(マンハ

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:28/297  20-コンピューター/Page Goto:1 22 23 24 25 26 27 28 29 30 31 32 33 34