Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで少なくともn個の繰り返し文字を含む最長の部分文字列を検索する


最初の引数として文字列を取り、2番目の引数として正の整数nを受け取るJavaScript関数を作成する必要があります。

文字列には繰り返し文字が含まれている可能性があります。この関数は、すべての文字が少なくともn回出現する元の文字列から、最長の部分文字列の長さを見つけて返す必要があります。

例-

入力文字列と数値が-

の場合
const str = 'kdkddj';
const num = 2;

その場合、出力は-

になります。
const output = 5;

必要な最長の部分文字列は「kdkdd」であるため

以下はコードです-

const str = 'kdkddj';
const num = 2;
const longestSubstring = (str = '', num) => {
   if(str.length < num){
      return 0
   };
   const map = {}
   for(let char of str) {
      if(char in map){
         map[char] += 1;
      }else{
         map[char] = 1;
      }
   }
   const minChar = Object.keys(map).reduce((minKey, key) => map[key] <
   map[minKey] ? key : minKey)
   if(map[minChar] >= num){
      return str.length;
   };
   substrings = str.split(minChar).filter((subs) => subs.length >= num);
   if(substrings.length == 0){
      return 0;
   };
   let max = 0;
   for(ss of substrings) {
      max = Math.max(max, longestSubstring(ss, num))
   };
   return max;
};
console.log(longestSubstring(str, num));

出力

以下はコンソール出力です-

5

  1. JavaScriptでインデックスの合計が最小の共通要素

    問題 最初と2番目の引数として、2つのリテラル配列arr1とarr2を受け取るJavaScript関数を作成する必要があります。 私たちの関数は、共通の要素を見つける必要があります arr1とarr2で、最小リストインデックス合計 。回答の間に選択の同点がある場合は、注文要件なしですべてを出力する必要があります。 たとえば、関数への入力が-の場合 const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['d', 'a', 'c'];

  2. C++で少なくともK個の繰り返し文字を含む最長のサブストリング

    文字列sがあり、T内のすべての文字が少なくとも表示されるように、指定された文字列(小文字のみで構成される)の最長の部分文字列Tの長さを見つける必要があるとします。 k回より。したがって、文字列が「ababbc」でk =2の場合、2つのaと3つのbがあるため、出力は3になり、最長のサブ文字列は「ababb」になります。 これを解決するには、次の手順に従います- longestSubstring()という再帰関数を1つ作成します。これには、文字列sとサイズkが必要です k =1の場合、文字列のサイズを返します 文字列のサイズが