zoukankan      html  css  js  c++  java
  • 笔试:找出一个字符串中字符出现最多的次数和该字符

    我用的是js,

    每次取出字符串的第一个字母,然后把和它相同的字符利用“”替换掉,然后来比较替换前和替换后的字符串长度相差多少,
    那么差值就是就是里面该字符的个数,找出这个差值最大的就是和所对应的替换字符。

                var str ="djlxsdjlxs"; //命名一个变量放置给出的字符串
                var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0
                var result = ''; //命名一个变量放置结果输入  
                
                while( str != '' ){ //循环迭代开始,并判断字符串是否为空
                    oldStr = str; //将原始的字符串变量赋值给新变量
                    getStr = str.substr(0,1); //用字符串的substr的方法得到第一个字符(首字母)
                    eval("str = str.replace(/"+getStr+"/g,'')"); //详细如补充  
                
                    if( oldStr.length-str.length > maxLength ) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
                        maxLength = oldStr.length-str.length; //两字符串长度相减得到最大的字符串长度
                        result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)
                    }
                }  
                
                alert(result) //弹出结果  

    当然这里有个要注意的地方,那就是我们用到了eval函数,因为我们的正则是一个变量,

    '/'+firstr+'/g'

    这个是不行的,如果我们要使用变量,还有一种方法就是利用正则的构造函数。

    var reg=new RegExp(firstr,"g")

    真是坑不断啊

  • 相关阅读:
    深入理解node.js异步编程:基础篇
    js里的回调函数
    nodejs 访问网站并操作xpath
    Linux 对比两个文本的交集和差集(comm)
    Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
    POJ 3134
    Spark Streaming中的操作函数分析
    Storm新特性之Flux
    POJ 题目2823 Sliding Window(RMQ,固定区间长度)
    广工2016校赛决赛
  • 原文地址:https://www.cnblogs.com/djlxs/p/5882915.html
Copyright © 2011-2022 走看看