JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptで文字列の各文字をASCIIコードに変換して数値を作り、7を1に置き換えた差を求める方法

    問題文字列を受け取るJavaScript関数を作成することを考えます。この関数は、文字列の各文字を対応するASCII文字コードに変換し、それらをすべて連結して1つの大きな数値を作成します。次に、その数値に含まれる「7」をすべて「1」に置き換えて別の数値を作り、最後に元の数値との差を返す必要があります。解法のポイント実は、巨大な数値を2つ作って実際に引き算を行う必要はありません。「7」を「1」に置き換えると、該当する桁ごとに必ず 7 − 1 = 6 だけ数値が減少するという性質があるためです。つまり、求める差は「7の出現回数 × 6」として簡単に計算できます。コード例以下が実装コードです。con

  2. JavaScriptで数字を対応するアルファベット・記号に変換する方法

    問題文字列形式の数字が格納された配列を受け取り、対応する文字からなる文字列を返すJavaScript関数を作成する必要があります。数字はアルファベットの逆順に対応しており、a=26、b=25、…、z=1 というマッピングになります。さらに、記号についても考慮が必要です。「!」は「27」、「?」は「28」、「スペース」は「29」として表現されます。解決策:コード例以下がその実装コードです。 { let res = ; for (let char of arr) { if (Number(char) <= 26) { res += Strin

  3. JavaScriptで指定した数より大きい最小の素数を見つける方法

    問題JavaScriptで、ある数値 n を受け取る関数を作成することを考えます。この関数は、n より大きい数の中で最小となる素数を返す必要があります。アプローチまず、与えられた数が素数かどうかを判定する補助関数 isPrime を用意します。素数判定では、2 からその数の平方根まで順に割り切れるかを確認すれば十分です。平方根以降の因数は必ずペアが存在するため、ここまで調べれば判定できます。これにより計算量を大幅に抑えられます。次に、nextPrime 関数の中で、引数の数値を1ずつ増やしながら isPrime で判定を行い、最初に見つかった素数を返します。コード例以下が実際のコードです。co

  4. JavaScriptで配列内の正の数の個数と負の数の合計を返す方法

    問題正の数と負の数が混在する整数の配列を受け取り、1つ目の要素に正の数の個数、2つ目の要素に負の数の合計を格納した新しい配列を返すJavaScript関数を作成する必要があります。例えば、入力配列が [1, 2, 1, -2, -4, 2, -6, 2, -4, 9] の場合、正の数は6個、負の数の合計は -16 となるため、出力は [6, -16] になります。実装例以下がそのコードです。const arr = [1, 2, 1, -2, -4, 2, -6, 2, -4, 9]; const posNeg = (arr = []) => {    const cr

  5. JavaScriptで文字列からすべてのスペースを削除する方法

    問題JavaScriptで、文字列を受け取り、その文字列に含まれるすべての半角スペースを取り除いた新しい文字列を返す関数を作成します。たとえば、単語の間や文字の間に入っている余分なスペースがすべて削除され、連続した文字列だけが残るイメージです。実装例:ループ処理を使う方法まずは基本的なアプローチとして、forループで文字列を1文字ずつ確認し、スペース以外の文字だけを結果に連結していく方法を見てみましょう。const str = some random string ex a m pl e; const removeSpaces = (str = ) => {   l

  6. 【JavaScript】数値の各桁の「和」と「積」の差を求める方法

    本記事では、JavaScript を使って、ある数値の各桁の合計(和)と各桁の乗算結果(積)の差を求める方法を解説します。最終的には、その差の絶対値を返す関数を作成します。 課題の内容 数値 n を引数として受け取る JavaScript の関数を作成します。この関数の役割は、次のとおりです。 数値を構成するすべての桁の合計を計算する 数値を構成するすべての桁の積を計算する 両者の差の絶対値を返す 例えば、数値が 434312 の場合、各桁の合計は「4 + 3 + 4 + 3 + 1 + 2 = 17」、各桁の積は「4 × 3 × 4 × 3 × 1 × 2 = 288」となり、差の絶対値

  7. JavaScriptでボグル(Boggle)盤上の単語を検証するアルゴリズム

    問題概要ボグル(Boggle)盤とは、個々の文字が並んだ2次元配列のことです。例えば以下のようなものがあります。const board = [ [I,L,A,W], [B,N,G,E], [I,U,A,O], [A,S,R,L] ];ここで求められているのは、JavaScriptの関数を作成し、ボグル盤と文字列を受け取って、その文字列がボグル盤上の有効な解答(バリッドな推測)であるかどうかを判定することです。有効な推測とは、隣接するセル(上下左右および斜め方向)をつなぎ合わせて形成できる文字列であり、かつ一度使用したセルを再利用しないという条件を満たすものを指し

  8. JavaScriptで文字列内の文字がすべて一意かどうかを判定する方法

    問題JavaScriptの関数を作成することを目標とします。この関数は文字列を引数として受け取り、その文字列に含まれるすべての文字が一度だけ出現していれば true を返し、同じ文字が複数回出現していれば false を返します。コード例以下が実際のコードです。const str = thisconaluqe;const allUnique = (str = ) => {    for(let i = 0; i < str.length; i++){        

  9. 2進数の末尾に文字列を連結して「次の5の倍数」を求めるJavaScript関数の実装方法

    問題数値 n を引数として受け取り、その数値の2進表現の末尾に最短の2進文字列を連結することで得られる「次に大きい5の倍数」を返すJavaScript関数を作成します。たとえば入力が 8 の場合、8 の2進表現は 1000 です。ここに最短の2進文字列を順に連結して試し、最初に5の倍数になった時点の数値を答えとして返します。アプローチのポイント元の数値を2進文字列に変換する長さ1、長さ2…と桁数を増やしながら、ありうるすべての2進パターンを生成する各パターンを末尾に連結し、10進数に戻した値が5で割り切れるかを判定する割り切れた瞬間の値を即座に返すコード例const generateAll =

  10. JavaScriptで文字列を特定の回数だけ繰り返す方法

    JavaScriptでは、文字列と数値を引数として受け取り、その文字列を指定された回数だけ繰り返した新しい文字列を返す関数を書くことが求められるケースがあります。本記事では、その実装方法をわかりやすく解説します。問題の概要ここで必要なのは、次のような仕様を持つJavaScript関数です。第1引数に文字列、第2引数に繰り返し回数(数値)を受け取る入力文字列を第2引数で指定された回数だけ繰り返す繰り返した結果の新しい文字列を返す実装例以下は、ループ処理を使って文字列を繰り返すコード例です。const str = this; const num = 8; const repeatSpecific

  11. 【JavaScript】数値を逆順にした値が素数かどうかを判定する方法

    問題 今回は、数値を引数として受け取り、その数値を逆順(数字をひっくり返した値)にした結果が素数であれば true を、そうでなければ false を返す JavaScript 関数を作成します。 ちなみに、このように「逆順にすると別の素数になる数」は「エマープ(emirp:prime を逆から読んだ語)」と呼ばれることがあります。 サンプルコード 以下のコードでは、まず数値を文字列に変換して逆順に並べ替え、その後で素数判定を行っています。 const num = 13; // 数値を逆順にした値を返す関数 const findReverse = (num) => { re

  12. JavaScriptで合計が0以上となる最長部分配列を見つけるアルゴリズム

    問題の概要今回は、-1から1の範囲の整数のみを含む配列を受け取り、その中から合計が0以上になる最長の連続する部分配列(サブアレイ)の長さを返すJavaScript関数を作成します。一見単純な問題に見えますが、全ての組み合わせを総当たりで調べると計算量がO(n²)となり、配列が大きくなると非効率です。そこで本記事では、累積和(プレフィックスサム)の考え方を活用し、線形時間O(n)で解くスマートな手法を紹介します。解法のコードconst arr = [-1, -1, 0, 1, 1, -1, -1, -1]; const longestPositiveSum = (arr = []) =>

  13. JavaScriptで2つのソート済み配列を1つのソート済み配列にマージする方法

    問題2つの数値のソート済み配列を受け取り、両方の配列のすべての要素を新しい配列へマージし、同じ順序でソートされた状態の新しい配列として返すJavaScript関数を作成する必要があります。この操作はマージソートの中核となる処理でもあり、効率的なアルゴリズム設計における重要なテクニックです。concat()後にsort()する方法もありますが、すでにソート済みの配列同士をマージする場合は、両端ポインタ(Two Pointers)を使ったアプローチの方がはるかに効率的です。解決のアプローチ:Two Pointers(双方向ポインタ)基本的な考え方は以下の通りです。インデックス変数 i と j を用

  14. JavaScriptで有理数(分数)の配列を合計し、最も簡単な形式で結果を返す方法

    問題 「2つの数値を持つ部分配列」をちょうど2つ含む配列を受け取るJavaScript関数を作成する必要があります。各部分配列は、分数形式で表された有理数です。 この関数の役割は、2つの有理数を加算し、その結果を最も簡単な形式(最簡形)で表す2つの数値からなる新しい配列として返すことです。 解法のアプローチ 分数の加算は、以下の手順で行います。 通分する: 2つの分母を掛け合わせて共通の分母を求め、それに合わせて分子も調整します。 分子を加算する: 通分後の分子同士を足し合わせます。 約分する: 最大公約数(GCD)をユークリッドの互除法で求め、分子・分母をそれぞれ割ることで最簡形にしま

  15. 【JavaScript】既知のアルゴリズムからメッセージを復号して元の文字列を求める方法

    問題概要 JavaScriptの関数を作成し、処理済みのメッセージを受け取って、その元となるソースメッセージを返すことを目標とします。 ここで手がかりとして分かっているのは、メッセージの変換に使われたアルゴリズムだけです。そのアルゴリズムは次の通りです − メッセージ文字列を逆順に並べ替える。 すべての英字を、シングルクォートで囲んだASCIIコードに置き換える(Aは 65、hは 104 など)。 数字とスペースはそのまま挿入する。 サンプルコード 以下が実際のコードです − const str = 12 hello world 30; const decryptString = (st

  16. JavaScriptでエレベータが移動した階数の合計を求める方法

    問題 ある時間帯において、建物のエレベータが停止した階数を要素として持つ配列を受け取り、その間にエレベータが移動した階数の合計を返すJavaScript関数を作成する必要があります。 解決のアプローチ この問題は、配列内の隣り合う2つの階数の差の絶対値を順番に足し合わせることで解決できます。例えば、7階から1階へ移動すれば6階分、1階から7階へ戻ればさらに6階分とカウントしていきます。最終的に、これらの差をすべて合計した値が、エレベータがカバーした総階数となります。 コード例 以下がその実装コードです。 const arr = [7, 1, 7, 1]; const floorsCovere

  17. 【JavaScript】各桁の冪乗和が元の数値の整数倍になる整数kを求める方法

    問題の概要正の整数 n(各桁を a、b、c、d…と表記)と正の整数 p を引数として受け取り、次の条件を満たす正の整数 k を求めるJavaScript関数を作成します。n の各桁を、p から始まる連続する指数で累乗した値の総和が、k × n と等しくなること。数式で表すと以下のとおりです。(a ^ p + b ^ (p+1) + c ^ (p+2) + d ^ (p+3) + …) = n × k条件を満たす k が存在すればその値を返し、存在しない場合は -1 を返します。解法のアプローチ数値を文字列に変換して桁に分解する ― String() を使えば、各桁に簡単にアクセスできます。各桁

  18. JavaScriptで0からnまで数えるときに「9」が出現する回数を数える方法

    問題 数値 n を引数として受け取るJavaScript関数を作成します。この関数は、0からnまで順番に数えていく過程で、数字の「9」が何回登場するかを数え、その合計回数を返す必要があります。 解決のアプローチ この問題は、次の手順でシンプルに解決できます。 0からnまでの各数値を文字列に変換する 変換した文字列の中に「9」が何文字含まれているかを調べる すべての数値分のカウントを合計して返す 文字列内の特定の文字を数えるには、split() で1文字ずつ分解し、reduce() を使って一致する文字をカウントする方法が有効です。 コード例 以下が実際のコードです。 const num

  19. JavaScriptで単語の追加・ワイルドカード検索に対応したカスタムデータ構造を実装する方法

    問題本記事では、次の2つの操作をサポートするデータ構造をJavaScriptで設計する方法を解説します。addWord — データ構造に単語を追加する操作です。保存には配列など、既存のデータ構造を利用できます。search — 登録済みの単語から、完全一致する単語、または小文字「a-z」と「.」で構成された正規表現風のパターンを検索する操作です。「.」は任意の一文字に一致します。たとえば、次のように動作します。addWord(sir) addWord(car) addWord(mad) search(hell) === false search(.ad) === true search(s..

  20. JavaScriptで2つの文字列から作れる重複なしの最長文字列を求める方法

    問題今回は、「a」から「z」までの英小文字のみを含む2つの文字列 s1 と s2 を引数として受け取る JavaScript の関数を作成します。この関数が返すべきのは、s1 または s2 に登場する文字をすべて集め、重複を排除したうえで昇順に並べ替えた、可能な限り長い文字列です。各文字は1回だけ出現し、結果は必ずソートされた状態でなければなりません。たとえば、ある文字が両方の文字列に現れたとしても、結果には1度だけ含める必要があります。解決のアプローチ実装の手順は以下の通りです。1. concat() を使って2つの文字列を連結します。2. toLowerCase() で全体を小文字に統一し

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