JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. 【JavaScript】2つの配列間の文字列の長さにおける最大絶対差を求める方法

    問題 2つの文字列の配列 a1 と a2 を引数として受け取るJavaScript関数を作成する必要があります。各文字列は a〜z の英字のみで構成されているものとします。ここで x を1つ目の配列内の任意の文字列、y を2つ目の配列内の任意の文字列としたとき、関数は次の値を求めます。 max(abs(length(x) − length(y))) つまり、別々の配列に属する文字列のペアごとに長さの差の絶対値を計算し、その中で最大となる値を返すという問題です。 解法のポイント すべての文字列の組み合わせに対して二重ループで差を求めることも可能ですが、より効率的なアプローチがあります。絶対差

  2. JavaScriptで文字列の各文字を1始まりのインデックス回数だけ繰り返す方法

    問題 英小文字(a〜z)のみで構成された文字列を受け取り、特定のルールに従って新しい文字列を構築するJavaScript関数を作成する必要があります。 ルールは以下のとおりです。 各文字を、その文字列内での1始まりのインデックスの回数だけ繰り返す 繰り返し後の文字列の先頭の文字を大文字にする 異なる文字のグループ同士はダッシュ「-」で区切る たとえば、文字列「abcd」の場合、出力は次のようになります。 A-Bb-Ccc-Dddd コード例 以下は、forループを使った基本的な実装例です。 const str = abcd; const repeatStrings = (str) =&

  3. JavaScriptで配列内の正負が対応しない唯一の数値を見つける方法

    問題の概要整数の配列を受け取るJavaScript関数を作成する必要があります。この配列には、各数値に対して必ず正負が反転したペア(相方となる数値)が存在します。ただし、例外的に1つの数値だけは、そのペアとなる数値が配列内に存在しません。私たちのタスクは、そのペアを持たない唯一の数値を見つけ出して返すことです。解決のアプローチこの問題は、配列内のすべての数値を合計し、正負それぞれの出現回数の差を利用することで効率的に解けます。考え方は以下の通りです。配列内の全要素を合計します。同時に、正の数(0以上)が出たらカウントを+1、負の数が出たら-1していきます。最終的に、合計値を「正負のカウント差の

  4. JavaScriptで入力値から数列の値を計算する方法

    問題数値 n を唯一の引数として受け取り、次の漸化式を満たす数列 u の第 n 項 un の値を求める JavaScript 関数を作成します。数列 u の初期値は次のとおりです。u1 = 0、u2 = 2そして、隣接する 3 項は常に次の等式を満たすものとします。6unun+1 − 5unun+2 + un+1un+2 = 0アプローチ:一般項を見抜くこの漸化式には項同士の積が含まれており、一見すると複雑です。しかし、un = 2n という等比数列を代入してみると、この式が恒等的に成立することが分かります。6 · 2n · 2n+1 − 5 · 2n · 2n+2 + 2n+1 · 2n+2

  5. JavaScriptで文字列の配列を2つの部分に分割する全パターンを取得する方法

    問題少なくとも2つの要素を持つ文字列の配列を受け取るJavaScript関数を作成することを考えます。この関数の目的は、その配列を2つの空でない部分に分割するすべてのパターンを返すことです。たとえば、次の配列を見てみましょう。[az, toto, picaro, zone, kiwi]この場合、生成されるべき分割パターンは以下のとおりです。(az, toto picaro zone kiwi)(az toto, picaro zone kiwi)(az toto picaro, zone kiwi)(az toto picaro zone, kiwi)アプローチの考え方この問題は非常にシンプル

  6. JavaScriptで配列内の連続する数値ペアの個数を数える方法

    問題整数の配列を受け取るJavaScript関数を作成します。この関数は、配列の中から「隣接する2つの要素の値が連続している(差が±1)」ペアの個数を数えて返す必要があります。アプローチ最もシンプルな方法は、配列を先頭から順に走査しながら、インデックス i と i+1 の要素を1組として比較していくことです。ループ変数を2ずつ増やすことで、同じ要素を重複してチェックすることなく各ペアを検証できます。2つの要素の差が1であれば、そのペアは「連続した数値」とみなし、カウンターを1つ増やします。コード例以下が実際のコードです。const arr = [1, 2, 5, 8, -4, -3, 7, 6

  7. JavaScriptで文字列内の特定文字の最大連続出現回数を求める方法

    本記事では、JavaScriptを使って「文字列の中である1文字が連続して出現する最大回数」を求める方法を解説します。アルゴリズムの考え方から実際のコード、実行結果まで、初心者にもわかりやすく説明していきます。 問題 次のようなJavaScript関数を作成することを目標とします。 第1引数として文字列を受け取る 第2引数として1文字を受け取る その文字が文字列内で連続して出現した最長の回数を数え、返す コード例 以下がその実装コードです。 {     const arr = str.split();     

  8. JavaScriptで指定範囲内の「逆さま数字(Upside Down Numbers)」を数える方法

    逆さま数字(Upside Down Numbers)とは?180度回転させても元の数字と同じように見える数字のことを「逆さま数字」と呼びます。例えば、「9116」や「69」などが該当します。これは次の桁だけが回転しても有効だからです。0 → 01 → 16 → 98 → 89 → 6一方、2・3・4・5・7は回転すると別の記号や無効な形になってしまうため、これらが含まれる数字は逆さま数字にはなりません。問題2つの数値からなる範囲の配列を受け取るJavaScript関数を作成する必要があります。この関数は、指定された範囲内に存在するすべての逆さま数字の個数を返さなければなりません。コード例以下が

  9. JavaScriptで2つの配列の対応する各要素にカスタム関数を適用する方法

    問題ここでは、次のようなJavaScript関数を作成する必要があります。第一引数:2つの引数を受け取り、値を返すコールバック関数第二引数・第三引数:ほぼ同じ長さの2つの配列この関数は、2つの入力配列から対応する要素同士をペアにしてコールバック関数へ渡し、その戻り値を要素とする新しい配列を構築して返すものとします。実装例以下のコードをご覧ください。const arr1 = [1, 2, 3, 4]; const arr2 = [5, 6, 7, 8]; const add = (a, b) => a + b; const applyFunction = (callback = () =&

  10. JavaScriptでライブラリ関数を使わずにASCIIコードからアルファベットを取得する方法

    問題 数値を引数として受け取るJavaScript関数を作成する必要があります。この関数は、その数値に対応するASCIIコード上のアルファベット文字を返し、該当するアルファベットが存在しない場合は -1 を返します。 ここでの重要な条件は、String.fromCharCode() のように数値と文字を相互変換する組み込み関数を使用してはならないという点です。 解決のアプローチ ASCIIコードでは、小文字の「a」〜「z」には 97〜122、大文字の「A」〜「Z」には 65〜90 の番号が連続して割り当てられています。この規則性を利用すれば、与えられた数値がどちらの範囲内にあるかを判定する

  11. JavaScriptで文字列内の最長の母音部分文字列の長さを求める方法

    問題 文字列を引数として受け取るJavaScriptの関数を作成する必要があります。この関数は、母音(a、e、i、o、u)のみで構成される連続した部分文字列の中から、最も長いものの長さを返さなければなりません。 アプローチ この問題は、文字列を先頭から順番に走査しながら、現在連続している母音の数をカウントすることで解決できます。具体的な手順は以下の通りです。 cur:現在連続している母音の数を記録するカウンター変数 max:これまでに見つかった最長の母音連鎖の長さを保持する変数 走査中の文字が母音であれば cur を1増やし、max より大きければ max を更新する 子音に遭遇した場合は

  12. JavaScriptで数値の隣接する2進ビットを入れ替えて新しい数値を生成する方法

    問題 数値を1つ受け取るJavaScript関数を書く必要があります。 この関数は、引数として渡された数値を2進表現に変換し、隣接するビット同士を入れ替えて新しい2進数を作り上げます。最後に、その新しい2進数に対応する10進数の値を返します。 コード例 以下がそのコードです − const num = 13; const swapBits = (num) => {     let arr = num.toString(2).split('');     if(arr.length % 2){

  13. JavaScriptで範囲内の「1に収束する素数」を数える方法

    問題概要 2つの数値からなる範囲配列を受け取るJavaScript関数を作成します。この関数は、範囲内にある素数のうち、各桁の数字の2乗の和を繰り返し計算すると最終的に1に到達する数の個数を返します。 たとえば23は素数であり、次のように計算が進みます。 22 + 32 = 13 12 + 32 = 10 12 + 02 = 1 最終的に1になったため、23は条件を満たす有効な数です。なお、この性質を持つ数は一般に「ハッピー数」と呼ばれ、素数であるハッピー数は「ハッピー素数」として知られています。 コード例 以下が実際のコードです − const range = [2, 212]; Strin

  14. 【JavaScript】文字行列と数値配列から指定位置の文字列を構築する方法

    問題n×n の文字マトリクス(二次元配列)と、正の整数のみで構成された重複のない数値配列を受け取る JavaScript 関数を作成します。この関数は、数値配列に含まれる 1始まりのインデックス に対応する文字をマトリクスから取り出し、それらを順番につなげて1つの文字列を構築して返す必要があります。入力データの例まず、文字マトリクスを見てみましょう。[   [a, b, c, d],   [o, f, r, g],   [h, i, e, j],   [k, l, m, n] ];次に、数値配列です。[1, 4,

  15. JavaScriptで指定した文字数に文字列を切り詰める方法

    JavaScriptでは、長いテキストを一覧表示やプレビュー用に短く表示したい場面がよくあります。この記事では、文字列と数値を受け取り、指定された文字数を超える場合は文字列を切り詰めて末尾に「...」を付けて返す関数の実装方法を解説します。要件作成する関数は、文字列と数値の2つの引数を受け取ります。文字列の長さが指定された数値より大きい場合は、先頭から指定文字数分だけ切り取った文字列に「...」を連結して返します。切り詰める必要がない場合(元の文字列が指定文字数以下の場合)は、元の文字列をそのまま返します。コード例以下がその実装コードです。 { const { length: len

  16. JavaScriptで2つの数値が少なくとも2つの共通する1ビットを持っているか確認する方法

    問題JavaScriptで、2つの数値を引数として受け取る関数を作成する必要があります。この関数は、両方の数値の2進数表現において、同じ桁位置に「1」が2箇所以上共通して存在する場合には true を返し、そうでない場合は false を返します。たとえば、10 の2進数表現は 1010、15 の2進数表現は 1111 です。これらを右端から比較すると、1ビット目と3ビット目の2箇所で「1」が一致しているため、結果は true になります。コード例以下がその実装コードです。const num1 = 10; const num2 = 15; const checkBits = (num1 = 1

  17. 【JavaScript入門】配列内で最初の非連続な数値を見つける方法

    はじめに本記事では、JavaScriptを使って「数値の配列の中から、直前の要素と連続していない最初の数値」を見つける方法を解説します。アルゴリズムの練習やコーディング面接の対策としても役立つ基本的な問題です。 問題の定義数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、直前の要素に対して +1 となっていない(連続していない)最初の要素を返さなければなりません。 言い換えると、隣り合う要素同士の差が1以外になる箇所が現れたとき、その箇所の後ろ側の要素を返すという処理です。なお、そのような要素が必ず配列内に1つ以上存在するものとします。 サンプルコード以下は、実

  18. JavaScriptで文字列を暗号化するアルゴリズムの実装方法

    問題文字列を受け取り、次のアルゴリズムに従って暗号化するJavaScript関数を作成します。入力される文字列は、スペースで区切られた単語のみで構成されているものとします。文字列内の各単語に対して、以下のルールを適用して暗号化を行います。最初の文字:ASCIIコード(10進数)に変換します。2番目の文字と最後の文字:互いに入れ替えます。このルールに従うと、たとえば「good」という文字列は「103doo」へと変換されます。具体的には、最初の「g」がASCIIコードの「103」に置き換わり、2番目の「o」と最後の「d」が入れ替わるためです。コード例以下が実際のコードです。 { const

  19. JavaScriptでアルゴリズムに基づいて文字列を暗号化する方法

    問題文字列を受け取り、以下のアルゴリズムに基づいて暗号化するJavaScript関数を作成する必要があります。文字列は、スペースで区切られた単語のみで構成されているものとします。文字列内の各単語は、次のルールに従って暗号化します。先頭の文字は、対応するASCIIコードに変換します。2番目の文字は、末尾の文字と入れ替えます。このルールに従うと、たとえば「good」という文字列は「103doo」に暗号化されます。先頭の「g」がASCIIコードの「103」に置き換えられ、2番目の「o」と最後の「d」が入れ替わるためです。サンプルコード以下が実際のコードです。const str = good;cons

  20. 【JavaScript】配列内で「値とインデックスが一致する」最初の数値を返す方法

    問題数値の配列を受け取るJavaScript関数を作成する必要があります。この関数は、配列の中で「要素の値」と「0から始まるインデックス」が一致している最初の数値を見つけて返します。なお、そのような数値が配列内に少なくとも1つは存在するものとします。コード例以下のコードでは、forループを使って配列を先頭から順番に走査し、各要素の値がそのインデックスと一致した時点で、その値を即座に返しています。const arr = [9, 2, 1, 3, 6, 5]; const findFirstSimilar = (arr = []) => {     f

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:13/297  20-コンピューター/Page Goto:1 7 8 9 10 11 12 13 14 15 16 17 18 19