zoukankan      html  css  js  c++  java
  • 利用split方法计算字符串中出现字母最多的次数

    最近练习一些简单的算法题,知道自己很不聪明,但却没想到用了这么久,划算不划算是个需要考虑的问题,

    其中有个算法是:统计一个字符串出现最多的字母,网上很多自己的见解,但是才疏学浅,有些地方看的有点困难,放在这个地方供参考吧!

    <script>
    var str = "zhaochucichuzuiduodezifu";
    var arr = [];//定义一个新数组
    //循环遍历字符串
    for (var i = 0, length = str.length; i < length; i++) {
    var index = -1;
    var j = 0;
    //找每一个字符
    do {
    index = str.indexOf(str[i], index + 1);?????
    if (index != -1) {
    j++;
    }
    }while (index != -1);
    arr[j] = str[i]; //把字符串str中的字符赋给数组arr索引为j的数据,当多次循环后,会出现重复赋值的现象,
                        //后赋值的会把之前的赋值覆盖掉,但不影响我们找出字符出现最多的那个
    }
    console.log(arr);
    console.log("最多的字符是" + arr[arr.length - 1]);
    console.log("次数是" + (arr.length - 1));
    </script>

    但是不能放弃,自己冷静下来想了想,JS查找字符串中出现次数最多的字符,可以利用所熟悉的下手,

    split(''),用字符串里面的已知字符切割自己的字符串,然后求得切割完的长度-1=对应字符的出现次数,

    但是发现,开始遍历字符串的每一个字符,求得的值会重复。于是有考虑过,先去除重复,

    利用保留下来的字符遍历,后进行操作,也可以求得值;

    关键:indexOf  push  split  的使用

    <!--求字符串中出现次数最多的字符次数-->
            <script>
                var arr = [];
                function txt(str) {
                    var j = 0;
                    for(var i = 0; i < str.length; i++) {
                        if(arr.indexOf(str[i]) == -1) {
                            arr.push(str[i]);
                        }
                    }
                    for(var j = 0; j < arr.length; j++) {
                        var s = arr[j];
                        var dd = str.split(s).length - 1;
                        console.log("字母" + s + "出现了" + dd + "次");
                    }
    
                }
                var str = "abacdeesa";
                txt(str);
            </script>
  • 相关阅读:
    多线程-工作组模式
    iOS端架构、基本组成与使用说明
    iOS,Core Animation--负责视图的复合功能
    Container Views
    IOS UIView 01-View开始深入 绘制像素到屏幕上
    View Programming Guide for iOS
    UI绘图与信息、样式
    iOS绘图框架CoreGraphics分析
    iOS开发系列--打造自己的“美图秀秀”
    Array与NSArray关系
  • 原文地址:https://www.cnblogs.com/hjt-7/p/6401009.html
Copyright © 2011-2022 走看看