JavaScriptで最長の単語を形成する
問題
最初の引数としてランダムな英語のアルファベット文字列strを取り、2番目の引数として文字列の配列arrを受け取るJavaScript関数を作成する必要があります。
この関数のタスクは、文字列strからいくつかの文字を削除して、配列arrに存在する最長の単語を確認することです。この関数は、可能な限り長い文字列を返す必要があります。
そのような文字列が存在しない場合は、空の文字列を返す必要があります。
たとえば、関数への入力が-
の場合const str = 'sdgfdfghdjh'; const arr = ['sdf', 'fghj', 'gfdfg', 'absc', 'a', 'hasl'];
その場合、出力は-
になります。const output = 'gfdfg';
出力の説明:
配列の1番目と2番目の要素は文字列から文字を削除することで形成できますが、「gfdfg」は文字列strから形成できる最長の文字列(5)です。
例
このためのコードは-
になりますconst str = 'sdgfdfghdjh'; const arr = ['sdf', 'fghj', 'gfdfg', 'absc', 'a', 'hasl']; const findLongestWord = (str = '', arr = []) => { arr.sort((a, b) => { if (a.length !== b.length) { return b.length - a.length; }; return a.localeCompare(b); }); for(const word of arr){ let index = -1; for(const char of word){ index = str.indexOf(char, index + 1); if(index < 0){ break; }; }; if (index >= 0){ return word; }; }; return ''; }; console.log(findLongestWord(str, arr));
コードの説明:
私たちが行った手順は次のとおりです-
-
配列arrを最初に長さで並べ替え、次に辞書式順序で並べ替えます。
-
arrの各単語をループします。単語のすべての文字が文字列strに含まれていない場合は、単に戻ります。
-
そして、すべての単語が一致した場合、その単語を返します。
また、辞書はすでに並べ替えられているので、最初の一致が答えであることを保証できます。
出力
コンソールの出力は-
になりますgfdfg
-
JavaScriptで最長の連続結合を検索する
問題 最初で唯一の引数として、数値のペアarrの配列を受け取るJavaScript関数を作成する必要があります。すべてのペアで、最初の数字は常に2番目の数字よりも小さくなります。 ここで、b
-
JavaScriptで最も長く増加するシーケンスの総数
問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 私たちの関数は、最も長く増加するサブシーケンス(連続または非連続)の数を見つけるために必要です。 たとえば、関数への入力が 入力 const arr = [2, 4, 6, 5, 8]; 出力 const output = 2; 出力の説明 最も長く増加する2つのサブシーケンスは、[2、4、5、8]と[2、4、6、8]です。 例 以下はコードです- const arr = [2, 4, 6, 5, 8]; const countSequence = (arr) =&