2018-11-22 返回字符串中重复数量最多字符的数量

递归:

// 声明字符串

var strings = 'sdfdasmfadsfjkldasfjdaisfjiodasfjkdsafzxcvozjxalk'

//  定义一个存放返回最终结果的对象

var result = {name:'', length:0}

var str, length;        // 每次递归时,用到的变量,当前字符和重复数量

(function(strings){

    if(!strings){         // 7. 如果字符串为空,return

        return 

    }

    str = strings[0];            // 1. 取字符串第一个字符

    length = strings.length;    // 2. 取当前字符串的总长度,默认为原始长度

    strings = strings.replace(new RegExp(str,'g'), '')    // 3. 把字符串中所有匹配的第一个字符替换为空

    length = length - strings.length    // 4. 取到第一个字符串重复数量

    if(length > result.length){     // 5. 如果 当前字符重复数量 大于 之前取到的最大重复数量,设置result

    result.name = str;

    result.length = length

    } 

    arguments.callee(strings)    // 6. 递归操作       关于arguments.callee()

})(strings)

console.log(result)    // {name: "s", length: 7}

循环:

function getRepeatObj(str){
    var obj = {name: '', len:0}
    var arr = str.split('').sort()

    for(var i in arr){
        var curlen = arr.lastIndexOf(arr[i]) - arr.indexOf(arr[i]) + 1
        if(curlen > obj.len){
            obj.len = curlen
            obj.name = arr[i]
        }
    }

    return obj
}

getRepeatObj('abcdb')    // {name:'b', len: 2}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,170评论 0 7
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,966评论 0 38
  • 胸藏文墨虚若谷,腹有诗书气自华。读书足以怡情,足以傅彩,足以长才。读书是一种优雅,能塑造人的精神,升华人的思想,提...
    凌远远阅读 162评论 0 0
  • 我家一张小小的餐桌,见证着一家人深深的情意。 餐桌照片(餐桌照片) 一家里的日常 每天,我们一家四口围在餐桌面前,...
    健的XUYU阅读 230评论 0 1