查找两个相同字符之间的最长子字符串JavaScript

我们需要编写一个包含字符串的JavaScript函数。该函数应该找到并返回夹在两个相同字母之间的最长子字符串的长度。

例如- 

如果输入字符串是-

const str = 'avbghvh';

那么输出应该是-

const output = 3;

因为所需的最长子字符串是两个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