動的計画法:最初のJavaScriptの2番目の文字列サブシーケンスです
2つの文字列str1とstr2が与えられ、str1がstr2のサブシーケンスであるかどうかをチェックする関数を作成する必要があります。
文字列のサブシーケンスは、残りの文字の相対位置を乱すことなく、一部の文字を削除することによって元の文字列から形成される新しい文字列です。
たとえば、「ace」は「abcde」のサブシーケンスですが、「aec」はサブシーケンスではありません
例
const str1 = 'ace'; const str2 = 'abcde'; const isSubsequence = (str1, str2) => { let i=0; let j=0; while(i<str1.length){ if(j===str2.length){ return false; } if(str1[i]===str2[j]){ i++; } j++; }; return true; }; console.log(isSubsequence(str1, str2));
出力
そして、コンソールの出力は-
になりますtrue
-
JavaScriptで1つの文字列を2番目の順序で並べ替える
問題 最初と2番目の引数としてstr1とstr2の2つの文字列を受け取るJavaScript関数を作成する必要があります。 この関数は、str2に表示される文字の順序に従ってstr1を並べ替える必要があります たとえば、関数への入力が-の場合 入力 const str1 = 'coding'; const str2 = 'gncabdi'; 出力 const output = 'gncdio'; 出力の説明 str2で最初に表示される文字が最初に配置され、次に続く文字が配置され、最後にstr2にない文字が続きます。 例 以下
-
JavaScriptで最初の配列を2番目に最大化する
問題 同じ長さの2つの数値配列arr1とarr2を受け取るJavaScript関数を作成する必要があります。 この関数は、最初の配列arr1の要素をシャッフルして、その最大要素数が配列arr2の対応する要素よりも多くなるようにする必要があります。次に、関数はシャッフルされた配列を返す必要があります。 たとえば、関数への入力が 入力 const arr1 = [3, 5, 12, 19]; const arr2 = [2, 9, 3, 12]; 出力 const output = [3, 12, 5, 19]; 出力の説明 arr1をシャッフルする前は、arr2よりも3つの対