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

2つの同じ文字間の最長の部分文字列を検索するJavaScript


文字列を取り込むJavaScript関数を作成する必要があります。この関数は、2つの同じ文字の間に挟まれている最長の部分文字列の長さを見つけて返す必要があります。

例-

入力文字列が-

の場合
const str = 'avbghvh';

その場合、出力は-

になります。
const output = 3;

必要な最長の部分文字列は、2つのvの間の「bgh」であるためです。

const str = 'avbghvh';
const longestSub = (str = '') => {
   const map = new Map();
   let max = -1;
   for(let i = 0; i < str.length; i++){
      if(map.has(str.charAt(i))){
         max = Math.max(max, i - map.get(str.charAt(i)) - 1);
      }else{
         map.set(str.charAt(i), i);
      };
   };
   return max;
};
console.log(longestSub(str));

出力

これにより、次の出力が生成されます-

3

  1. JavaScriptで2つの文字列の間の珍しい文字を見つけて返す

    問題 2つの文字列を受け取るJavaScript関数を作成する必要があります。この関数は、両方の文字列に共通ではない新しい文字列を返す必要があります。 例 以下はコードです- const str1 = "xyab"; const str2 = "xzca"; const findUncommon = (str1 = '', str2 = '') => {    const res = [];    for (let i = 0; i < str1.length; i+

  2. C++で最大2つの異なる文字を含む最長のサブストリング

    文字列sがあるとします。最大で2つの異なる文字を持つ最長の部分文字列tの長さを見つける必要があります。 したがって、入力が「eceba」のような場合、tは「ece」で長さが3であるため、出力は3になります。 これを解決するには、次の手順に従います- 関数lengthOfLongestSubstringKDistinct()を定義します。これには、s、k、が必要です。 ans:=0 1つのマップを定義するm n:=sのサイズ、x:=0 初期化j:=0、i:=0の場合、j