Javascript:从给定字符串Ex:I/p:aabbbccggg o/p:bbb中查找第二长的子字符串

Javascript:从给定字符串Ex:I/p:aabbbccggg o/p:bbb中查找第二长的子字符串,javascript,Javascript,Javascript:从给定字符串(标题中添加了输入和输出示例)中查找第二长的子字符串 使用RegExp 根据字符串长度对它们进行排序 选择第二项 函数getSecondSubstring(str){ 让regex=newregexp(str.toLowerCase().split(“”).filter((x,i,a)=>a.indexOf(x)==i.join(“+|”)+“+”,“ig”) 让substrgroups=str.match(regex); 子RGroups.sort((a,b

Javascript:从给定字符串(标题中添加了输入和输出示例)中查找第二长的子字符串

  • 使用
    RegExp
  • 根据字符串长度对它们进行排序
  • 选择第二项
  • 函数getSecondSubstring(str){ 让regex=newregexp(str.toLowerCase().split(“”).filter((x,i,a)=>a.indexOf(x)==i.join(“+|”)+“+”,“ig”) 让substrgroups=str.match(regex); 子RGroups.sort((a,b)=>b.length-a.length); 返回子RGroups[1] } log(getSecondSubstring(“öööðððób”);
    log(getSecondSubstring(“aabbbccggg”)如果您不介意使用正则表达式:

    function yourFunctionName(input){
      let grp = input.split(/(?<=(.))(?!\1|$)/ig);
      grp.sort((a,b)=> b.length-a.length);
    
      if(grp.length <= 0){
        return null;
      }
      else if (grp.length == 1){
        return grp[0];
      }
      else{
        grp.sort(function(a, b){
          return b.length - a.length;
        });
    
        return grp[1];
      }
    }
    
    console.log(yourFunctionName("ööööööðððób"));
    
    函数yourFunctionName(输入){
    设grp=input.split(/(?b.length-a.length);
    
    if(grp.length)你试过什么?你有什么建议吗?请帮助我解决这个问题。我不知道如何解决这个问题,谢谢。这对我帮助很大。unicode怎么样…例如,
    öööööðððb
    ?@LeonardoSeccia,使它成为通用的。适用于所有类型的字符。为什么否决投票?
    function yourFunctionName(input){
      input = input.toLowerCase();
      let counter = [];
      let prevChar;
      let countIndex = 0;
    
      for (let index = 0, length = input.length; index < length; index++) {
        const element = input[index];
    
        if(prevChar){
          if(prevChar != element){ 
            countIndex++;
            counter[countIndex] = "";
          }
        }
        else{
          counter[countIndex] = "";
        }
    
        counter[countIndex] += element; 
        prevChar = element;
      }
    
      if(counter.length <= 0){
        return null;
      }
      else if (counter.length == 1){
        return counter[0];
      }
      else{
        counter.sort(function(a, b){
          return b.length - a.length;
        });
    
        return counter[1];
      }
    }
    
    console.log(yourFunctionName("aaaaabbbbccdd"));