zoukankan      html  css  js  c++  java
  • 计算出给你一个随机乱敲的一个字符串最多的一个

        前几天在学习js的时候,碰到了这样一道面试题,要求计算出给你一个随机乱敲的一个字符串,要求在其中找出那个字符出现的次数最多,以及出现的个数。

    这你有两种方案,请大家仔细阅读,有可能在你将来的面试中会碰到。

    一:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
          <script type="text/javascript">
            //给定一个字符串,需要在其中找出哪个字符出现的次数最多,并且计算出这个字符出现的总次数
            //01自定义一个字符串
            var str = "fjalsfj1fds;lafsafafafasfas";
            /*
            02.JSON定义法类似于直接定义法,JSON定义法就是将直接定义法定义的函数与属性放到大括号中,
            并且去掉属性与函数签名的对象名,把等于号改为了冒号,每行后面改为逗号!
            */
            var json = {};
            //03遍历str字符串
            for (var i = 0; i < str.length; i++) {
                /*04.str.charAt(i):在字符串中取出对应的i处的索引的字符串。
                    判断当前元素是否已经在数组中存在
                */
                if (!json[str.charAt(i)]) {
                    json[str.charAt(i)] = 1;//05给对应数组元素中个数赋值
                } else {
                    json[str.charAt(i)]++;
                }
            }
            var iMax = 0;//出现次数
            var iIndex = "";//元素名称
            for (var i in json) {//重新赋值出现最多的元素
                if(json[i]>iMax){
                    iMax = json[i];
                    iIndex = i;
                }
            }
            alert("出现次数最多的是:"+iIndex+"出现"+iMax+"次");
    
    
        </script>
    </head>
    <body>
    
    </body>
    </html>

    二:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            var str = "adadfdfseffserfefsefseeffffftsdg"; //命名一个变量放置给出的字符串 
            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) //弹出结果  
    </script>
    </head>
    <body>
    
    </body>
    </html>

    谢!转:http://www.cnblogs.com/heyongjun1997/p/5556164.html

  • 相关阅读:
    使用poi读取excel文件 Cannot get a text value from a numeric cell
    异步往数据库中插入每个用户的增删改操作日志
    mybatis where in语句中参数过多
    使用泛型实现对int数组或者String数组进行排序
    读取hdfs目录,并在web页面上展示文件里的内容
    java使用优先级队列实现哈夫曼编码
    使用JavaScript动态的绑定、解绑 a 标签的onclick事件,防止重复点击
    git概念和操作流程
    新的学习路径、学习想法和思路的头脑风暴:基于泰迪云课程,对数据分析和数据建模,机器学习算法进行统筹,接着是基于大数据的数据挖掘、进度、
    RSA加密算法流程,公钥加密,私钥解密
  • 原文地址:https://www.cnblogs.com/zhangzongle/p/5562902.html
Copyright © 2011-2022 走看看