查找字符串中出现最多的字符

方法一:利用js的split和join方法

 1 function foo(str){
 2     var max = 0;
 3     var char = []; // 存放出现次数最多的字符
 4     while(str){
 5         var head = str.charAt(0);
 6         var arr = str.split(head);
 7         var num = str.length - arr.join(‘‘).length;
 8         if(num > max){
 9             max = num;
10             char.length = 0;
11             char.push(head);
12         }else if(num === max){
13             char.push(head);
14         }
15         str = arr.join(‘‘);
16     }
17     return {maxNum:max,chars:char};
18
19 }

方法二:此处要用对象key查找而不是用下标遍历,前者时间是1后者是n

 1 function foo(str){
 2     let result = [];
 3     for(let i = 0; i < str.length; i++){
 4         if(result[str[i]]){
 5             result[str[i]] += 1;
 6         }else{
 7             result.push(str[i]);
 8             result[str[i]] = 1;
 9         }
10     }
11
12     let max = 0;
13     let char = [];
14     for(let key in result){
15         if(result[key] > max){
16             char.length = 0;
17             max = result[key];
18             char.push(key);
19         }else if(result[key] === max){
20             char.push(key);
21         }
22     }
23
24     retrun {maxNum:max,chars:char};
25
26 }

原文地址:https://www.cnblogs.com/171220-barney/p/8869685.html

时间: 2024-10-28 10:13:49

查找字符串中出现最多的字符的相关文章

查找字符串中出现最多的字符和个数

var str = 'safsafsagadsfshjsadfhsajdhgsaaaaaaaaaaaafsafasdvgdasfsajkodhsaodsagdusiagdusaidhsajdhsajdhsajdhsaohdiusahduisahdusadhudhufsaaaaaagfdghdfhdfhdfhdfgjgfjfgjfddfhfghhdfhdfhdfhdsfgfdghdfhdghfgfdghdfgdfgdfgdsdfgsdfgsgdfgsdgsdfdsfg'; var obj = {}

数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数

数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } arr.sort(function(a,b){ return a-b; // 从小到大排序 }) alert(arr); // 0,1,2,5,6,8,9,81 arr.sort(fu

js--找字符串中出现最多的字符

在一个字符串中,如 'zhaochucichuzuiduodezifu',我们要找出出现最多的字符.本文章将详细说明方法思路. 先介绍两个string对象中的两个方法:indexOf()和charAt()方法 indexOf()方法介绍 返回某个指定的字符串值在字符串中首次出现的位置 语法 Object(string|array).indexOf(searchValue, fromIndex); 参数1  (必需)规定需检索的字符串值 参数2 (可选)规定在字符串中开始检索的位置(包括自身).若

求一个字符串中出现最多的字符和次数

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> var str = "zhaochucichuzuiduodezifu"; var json = {}; for (var i = 0; i < str.length;

输入一排字符串,然后统计字符串中出现最多的字符

static void Main(string[] args) { string str = "abcabcqwe"; if (str.Length > 0) { //把字符串进行分割 char[] strChar = str.ToCharArray(); //把字符先分组后排序 var c = strChar.GroupBy(m => m).OrderByDescending(m => m.Count()).ToList(); var first = strChar

找出给定字符串中出现最多的字符和次数

public static void findMaxCountChar(String str) { if (str == null || str == "") return; Map<String, Integer> map = new HashMap<String, Integer>(); int maxCount = 0; String maxCountStr = ""; List<String> list = new Arr

查找字符串中最长重复字符的子串

temppos:记录子字符串开始的下标 list:存放重复的子字符串 public class RepeatString { private static void longestdupString(String s) { if (s == null || s.length() == 0) { return; } char temp = s.charAt(0); int temppos = 0; List<String> list = new ArrayList<String>()

获取你所查找字符串中的某一个字符的所在位置

//获取截取的第一个字符所在 int subA = jsonTest.LastIndexOf("["); //获取截取的第二个字符所在 int subB = jsonTest.LastIndexOf("]");

[java] 找出字符串中出现最多的字符和出现的次数

逛园子看到一童鞋做的华为上机题目,写来好长的代码,懒得看,感觉不可能这么难,于是动手敲了下. import java.util.Scanner; public class StringTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); String A = s