Maison  >  Article  >  interface Web  >  javascript obtient les conseils les plus répétés sur les caractères_javascript

javascript obtient les conseils les plus répétés sur les caractères_javascript

WBOY
WBOYoriginal
2016-05-16 15:50:491256parcourir

Javascript obtient les caractères les plus répétés

/**
  取出字符串中重复字数最多的字符
*/
var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa';       //创建字符串
var word,                           //单个字符
  length;                          //该字符的长度
//定义输出对象
var max = {
  wordName : '',                      //重复次数最多的字符
  wordLength : 0                      //重复的次数
};
//递归方法,传入字符串
(function(words) {
  if (!words) return;         //如果字符串已经变空则返回,结束递归
  word  = words[0];         //取出字符串中的第一个字符
  length = words.length;         //将length设为当前字符串长度
  words  = words.replace(new RegExp(word, 'g'), ''); //返回将字符串剔除当前字符的剩余字符串
  length = length - words.length;      //重设length为当前字符在字符串中的长度
  if (length > max.wordLength)       //如果该字符重复次数大于maxLength,则重设maxLength为当前字符重复次数
    max = {               //重设对象的值
      wordName  : word,            
      wordLength : length       
    };              
  arguments.callee(words);        //递归调用,传入剩余字符串
})(words);
console.log(max.wordName+"\n"+max.wordLength);     //递归结束后输出结果
  

J'ai vu un tel problème par hasard ce matin. J'ai vu que la plupart des problèmes sur Internet sont créés à l'aide de deux boucles. Ensuite, je l'ai écrit en utilisant la récursion

.

L'idée est

Chaque fois qu'il se reproduit, supprimez le premier caractère de la chaîne et soustrayez la longueur de la chaîne supprimée de la longueur de la chaîne précédente

.

Ce qui est obtenu est le nombre de répétitions du caractère actuel dans la chaîne

.

Déterminez si le nombre de répétitions du caractère est supérieur au maxLength stocké dans l'objet de sortie actuel.

Si vrai, mettez à jour

Entrez ensuite la récursion suivante jusqu'à ce que la chaîne soit remplacée et terminez

L'objet de sortie stocke les caractères les plus fréquents et le nombre de répétitions

Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn