zoukankan      html  css  js  c++  java
  • 查询字符串中出现频率最高的几种方法

    1 概述

      要想在字符串中搜索出出现频率最高的字符串以及频率,需要涉及到JS中字符串以及数组的操作.

      大致的思路有三种:

        1:替换首字符,比较字符串前后长度之差,在进行比较。

        2: 将字符串重新排列成有序字符串,在通过正则获取各个不同部分组成的数组。

        3: 将字符串进行遍历统计。

    2 实例

      假如 var str = 'asdasassdsaa';

      方法一

        function getMost1(str){
                var most = [], num = 0;
                while( str != '' ){
                    var ori = str, target = str.substr(0,1);
                    var re = target;
                    if(/[\$\(\)\*\+\.\?]/.test(target)) 
                        re = '\\' + re;
                    str = str.replace(new RegExp(re, 'g'), '');  
                    var diff = ori.length - str.length; //
                    if(diff > num) {
                        num = diff;
                        most = [target];
                    } else if (diff == num) {
                        most.push(target);
                    }
                }
                return num + '  ' + most;
        }

      方法二

    function getMost2(str){
        var most = str.split('').sort().join('').match(/(.)\1*/g);
        most = most.sort(function(a,b){return a.length-b.length}).pop();
        return most.length + '  ' + most[0];
    } 

      方法三

        function getMost3(str){
            for(var i in str){
                var mem = str[i];
                o[mem]?o[mem]++:o[mem] = 1;
            }
            var newArr = [];
            var base = 0;
            var letter = [];
            for(var i in o){
                var mem = o[i];
                if(mem>base){
                    letter = [];
                    base = mem;
                    letter.push(i);
                }else if(mem == base){
                        letter.push(i);
                }
            }
            return base + '  ' +letter;    
        }    

    其中方法二虽然简洁,但是只能得到出现频率最高之一。

    有兴趣的话,可以拆分下,单步调试。

  • 相关阅读:
    【npm】mac下node环境搭建
    pair求解迷宫的最短路径(bfs)
    dos窗口启动关闭Mysql
    二维差分模板
    一维差分模板
    DOS命令
    迷宫搜索dfs实现
    DFS 迷宫问题
    BFS广搜解决迷宫问题(跟着B站大佬手撸)
    蓝桥杯省赛模拟赛
  • 原文地址:https://www.cnblogs.com/cy056/p/2818251.html
Copyright © 2011-2022 走看看