JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptで母音と子音が交互に現れているかを検証する方法

    問題英語のアルファベットからなる文字列 str を唯一の引数として受け取るJavaScript関数を作成します。この関数は、入力文字列内で母音と子音が交互に現れている場合にのみ true を返し、それ以外の場合は false を返す必要があります。例えば、関数への入力が次の場合を考えてみましょう。入力const str = 'amazon';出力const output = true;出力の説明文字列「amazon」は、a(母音)→ m(子音)→ a(母音)→ z(子音)→ o(母音)→ n(子音)という順序になっており、母音と子音が交互に現れているため true となります。

  2. JavaScriptでバイナリ文字列を単調増加にするための最小反転回数を求める方法

    単調増加文字列とは0と1のみで構成される文字列が「単調増加」とみなされるのは、任意の個数(0個でも可)の0が先頭に並び、その後に任意の個数(これも0個でも可)の1が続く場合です。つまり、「000111」「0011」「1」などは単調増加ですが、「1100」「010」などは該当しません。問題の概要本記事では、バイナリ文字列 str を唯一の引数として受け取るJavaScript関数を作成します。文字列内の任意の0を1へ、または任意の1を0へと反転(フリップ)することができます。このとき、文字列全体を単調増加にするために必要な最小の反転回数を求めて返すのが目標です。入力例const str = 00

  3. JavaScriptで合計が指定値と一致するバイナリ部分配列の個数を数える方法

    問題最初の引数としてバイナリ配列 arr を、2番目の引数として数値 target を受け取る JavaScript 関数を作成します。この関数の役割は、配列 arr 内に存在する連続する部分配列のうち、要素の合計が target と一致するものの個数を数え、その結果を返すことです。たとえば、関数への入力が次の場合を考えてみましょう。入力const arr = [1, 0, 1, 0, 1]; const target = 2;出力const output = 4;出力の説明条件を満たす部分配列は、次の4つです。[1,0,1] [1,0,1,0] [0,1,0,1] [1,0,1]解法のアプロ

  4. JavaScriptで配列から作れる等差数列(AP)の個数を数える方法

    等差数列(AP)とは 等差数列(Arithmetic Progression:AP)とは、隣り合う2つの数の差が常に一定の値になる数列のことです。この一定の差は「公差」と呼ばれます。 例えば、1, 2, 3, 4, 5, 6… という数列は、公差が1(2 − 1 = 1)の等差数列です。 問題 ここでは、整数の配列 arr を唯一の引数として受け取るJavaScript関数を作成します。 関数の役割は、その配列の中から作成可能な「サイズ3の等差数列」の個数を返すことです。各等差数列において、要素間の差はすべて同じでなければなりません。なお、入力配列は昇順にソートされていることが保証されていま

  5. JavaScriptの配列から奇偶が異なる唯一の要素を返す方法

    問題の概要整数の配列 arr を第1引数(かつ唯一の引数)として受け取るJavaScript関数を作成します。この配列には、「すべて偶数+奇数が1個だけ」または「すべて奇数+偶数が1個だけ」という特徴があります。関数の役割は、その中で唯一ほかと性質が異なる要素を見つけ出し、それを返すことです。たとえば、次のような入力が与えられた場合を考えてみましょう。入力const arr = [5, 9, 7, 11, 34, 23, 77];出力const output = 34;出力の解説この配列はほぼすべて奇数で構成されていますが、34 だけが偶数です。したがって、返すべき値は 34 となります。実装

  6. JavaScriptでアルファベットをギリシャ文字に変換する方法

    問題の概要 大文字の英語アルファベットで構成される文字列 str を唯一の引数として受け取り、ギリシャ文字へ変換するJavaScript関数を作成します。 英語とギリシャ文字の対応関係は以下の通りです。 A=α(Alpha) B=β(Beta) D=δ(Delta) E=ε(Epsilon) I=ι(Iota) K=κ(Kappa) N=η(Eta) O=θ(Theta) P=ρ(Rho) R=π(Pi) T=τ(Tau) U=μ(Mu) V=υ(Upsilo

  7. JavaScriptで配列が表す数値より1大きい数を新しい配列として返す方法

    問題の概要正の整数のみを含む配列 arr を受け取るJavaScript関数を作成する必要があります。この関数は、まず配列内の数字をつなぎ合わせて1つの数値とみなし、その数値に1を足した結果を、再び各桁に分割した新しい配列として返します。例えば、関数への入力が次の場合を考えてみましょう。入力const arr = [6, 7, 3, 9];出力const output = [6, 7, 4, 0];出力の解説入力配列が表す数値は「6739」であり、それに1を加えた「6740」を各桁に分解すると [6, 7, 4, 0] となるためです。実装コード以下がその実装例です。v*1); }; cons

  8. JavaScriptで1/nの循環小数(循環節)の長さを求める方法

    問題数値 num を第一引数(かつ唯一の引数)として受け取るJavaScript関数を作成します。この関数には、次の2つの役割があります。まず、その数が10と互いに素(共通の約数が1のみ)であるかどうかを判定します。互いに素でない場合は -1 を返します。10と互いに素である場合は、1をその数で割ったときに小数部が循環する桁数(循環節の長さ)を返します。たとえば、関数への入力が次の場合を考えてみましょう。入力const num = 123;出力const output = 5;出力の解説123は2でも5でも割り切れないため、確実に10と互いに素です。そして1を123で割ると、次のようになります

  9. JavaScriptで特定の文字列の順序に従って文字列を並べ替える方法

    問題 2つの文字列 str1 と str2 を第1・第2引数として受け取るJavaScript関数を作成する必要があります。 この関数は、str1 を str2 に含まれる文字の出現順序に従って並べ替えます。 例えば、関数への入力が以下の場合を考えてみましょう。 入力 const str1 = coding; const str2 = gncabdi; 出力 const output = gncdio; 出力の説明 str2 の中で先に現れる文字が優先的に前に配置され、その後に後から現れる文字が続きます。そして最後に、str2 に存在しない残りの文字がそのまま並べられます。 解決のアプローチ

  10. JavaScriptでASCII文字列と16進数を相互変換するコンバータークラスの実装方法

    課題今回は、以下の2つのメンバー関数を持つJavaScriptクラスを作成する必要があります。toHex: ASCII文字列を受け取り、それに対応する16進数の文字列を返します。toASCII: 16進数の文字列を受け取り、それに対応するASCII文字列を返します。たとえば、関数への入力が次のようになっているとします。入力const str = this is a string;この場合、変換後の16進数とASCII文字列はそれぞれ以下のようになります。74686973206973206120737472696e67this is a string変換の仕組みASCIIから16進数への変換では

  11. JavaScriptでアッカーマン数を計算する方法(再帰関数の実装例)

    アッカーマン関数とは アッカーマン関数(Ackermann Function)は、再帰関数の古典的な例として知られる数学関数です。最大の特徴は、原始再帰関数ではないという点にあります。これは、for文やwhile文のような単純なループ処理だけでは表現できないことを意味します。 また、この関数は入力値の増加に対して値が極めて急速に大きくなることでも有名です。値の増大に伴い、再帰呼び出しのツリー(コールスタック)も爆発的に深くなるため、再帰の挙動や計算量の理論を学ぶ題材としてよく取り上げられます。 問題 2つの数 m と n を第1引数・第2引数として受け取るJavaScript関数を作成しま

  12. JavaScriptで10進数に変換せずに2進数同士を加算する方法

    この記事では、JavaScriptを使って2進数の文字列を10進数に変換せずにそのまま加算する関数の実装方法を解説します。大きな数値でも精度の心配なく扱える、実用的なアプローチです。 問題の概要2つの2進数の文字列 str1 と str2 を引数として受け取り、それらを加算した結果を返すJavaScript関数を作成します。ただし、以下の制約があります。 2進数を10進数に変換してから加算することは禁止 結果として返す文字列の先頭に余分な「0」が含まれてはいけない たとえば、次のような入力が与えられた場合を考えます。 入力: const str1 = 1101; const str2 =

  13. JavaScriptで数値に序数接尾辞(st・nd・rd・th)を追加する方法

    問題JavaScriptで関数を作成する必要があります。この関数は、数値 num を最初の(唯一の)引数として受け取ります。関数の役割は、英語の序数表記のルールに従って、数値に「st」「nd」「rd」「th」という接尾辞を追加することです。具体的なルールは以下の通りです。一の位が1で終わる数値には「st」を使用します(例:1st、発音はfirst)一の位が2で終わる数値には「nd」を使用します(例:92nd、発音はninety-second)一の位が3で終わる数値には「rd」を使用します(例:33rd、発音はthirty-third)上記ルールの例外として、下二桁が11・12・13となる数値に

  14. JavaScriptで反対方向の移動を相殺して最終的な進行方向を求める方法

    問題単一文字の配列 arr を引数として受け取り、配列全体の移動を処理した後に残る最終的な進行方向を返すJavaScript関数を作成する必要があります。配列に含められるのは、次の4種類の文字のみです。N → 北(North)方向への移動S → 南(South)方向への移動W → 西(West)方向への移動E → 東(East)方向への移動各文字は、その方向へ単位距離だけ移動することを表します。そして、配列内のどこかで反対同士の方向(S と N、または E と W)が隣接して現れた場合、それらは互いの移動を打ち消し合います。したがって、この関数の役割は、すべての打ち消しを適用した結果として残る

  15. KadaneのアルゴリズムでJavaScriptの最大部分配列和を線形時間で求める方法

    問題 正と負の整数が混在する配列 arr を唯一の引数として受け取るJavaScript関数を作成します。 この関数は、配列内の任意の部分配列(連続する要素の集まり)の合計として考えられる最大値を、線形時間 O(n) で返す必要があります。 Kadaneのアルゴリズムの考え方 任意のインデックス i における「局所最大値(local_maximum)」とは、arr[i] 単独の値と、arr[i] + インデックス i-1 の局所最大値 のうち大きい方を指します。 この考え方を配列の先頭から順に適用していけば、配列全体をたった一度の走査で処理するだけで、最大部分配列和を効率よく求めることがで

  16. JavaScriptで数値を回文にするまでのステップ数を求める方法

    問題数値 num を第一かつ唯一の引数として受け取るJavaScript関数を作成します。この関数は、与えられた数値を回文(左から読んでも右から読んでも同じ並びになる数)にするために必要な「特別なステップ」の回数を返します。ここでいう特別なステップとは、「桁を逆順に並べ替えて、元の数値に加算する」という操作のことです。加算した結果がまだ回文になっていない場合は、その合計値に対して同じ操作を、回文が得られるまで繰り返します。例えば、関数への入力が次の場合を考えてみましょう。入力const num = 87;出力const output = 4;出力の解説答えが4になるのは、以下のステップを経るた

  17. JavaScriptで数式から括弧を削除する方法を解説

    問題 数式を表す文字列 str を第一引数(唯一の引数)として受け取る JavaScript 関数を作成する必要があります。 この関数の目的は、演算子とオペランド(項)の意味や順序を変えずに、数式から括弧をすべて取り除くことです。 例えば、関数への入力が以下の場合を考えてみましょう。 入力: const str = u-(v-w-(x+y))-z; 出力: const output = u-v+w+x+y-z; アプローチのポイント 括弧を取り除く際に最も重要なのは、括弧の直前の符号によって、括弧内の各項の符号がどのように変化するかを正しく追跡することです。 本解説ではスタック(stack)

  18. JavaScriptで桁の合計値に基づいて配列内の数値を並べ替える方法

    問題 正の整数のみを含む配列 arr を第1引数として受け取るJavaScript関数を作成する必要があります。 この関数は、各桁の数字の合計値(桁和)が最も大きい数値が先頭に来るように、以降は桁和の小さい数値が順に続く形で、入力配列をソートします。 例えば、関数への入力が次のような場合です。 入力 const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565]; 出力 const output = [565, 78, 76, 57, 8, 34, 5, 13, 101, 1]; 出力の説明 565の桁和は16と最も大きく、続いて78、76が続き、10

  19. JavaScriptで配列を電話番号形式の文字列に変換する方法

    問題ちょうど10個の正の整数を含む配列 arr を受け取るJavaScript関数を作成することを考えます。この関数は、配列の要素を一般的な電話番号の形式である「(XXX) XXX-XXXX」の文字列に組み立てて返す必要があります。例えば、関数への入力が以下の場合を考えてみましょう。入力const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0];出力const output = (987) 654-3210;コード例以下がその実装コードです。const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; const createNumber =

  20. 【JavaScript】配列内の各要素の出現回数をn回までに制限する方法

    問題の概要JavaScriptで次のような関数を作成します。この関数は、重複を含む可能性のある整数の配列 arr を第1引数として受け取り、数値 num を第2引数として受け取ります。関数の役割は、配列を走査して、特定の数値が配列内に num 回よりも多く出現していないかどうかを確認することです。もしそのような要素が存在する場合、余分な出現箇所を削除し、各要素の出現回数を最大でも num 回に制限します。例えば、関数への入力が以下の場合を考えてみましょう。入力:const arr = [4, 1, 3, 1, 4, 1, 3, 4, 2]; const num = 2;出力:const out

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:9/297  20-コンピューター/Page Goto:1 3 4 5 6 7 8 9 10 11 12 13 14 15