最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 var maxLength = 0; var maxStr = ''; var count = 1; var stringList = 'adsafsfgadsdaasssssaasssdfssss'; // 首先对字符串进行排列,方便比较 stringList = stringList.split('').sort(); // 比较字符串相邻位置是否相同 for (let i = 0; i…
方法一: var str="sdfseresssssdssdfsa"; var arr=[]; var max=0; var maxk; for(var i=0;i<str.length;i++){ var k=str[i]; if(!arr[k]){ arr[k]=str.split(k).length-1; } } for(var n in arr){ if(max < arr[n]){ max=arr[n]; maxk=n; } } console.log("…
最近练习一些简单的算法题,知道自己很不聪明,但却没想到用了这么久,划算不划算是个需要考虑的问题, 其中有个算法是:统计一个字符串出现最多的字母,网上很多自己的见解,但是才疏学浅,有些地方看的有点困难,放在这个地方供参考吧! <script> var str = "zhaochucichuzuiduodezifu"; var arr = [];//定义一个新数组 //循环遍历字符串 for (var i = 0, length = str.length; i < len…
这是一道面试题 此处是利用Obj来解决的,当然不只此一种方法. //思路:遍历数组,拿到一个字符,并将之以 "字符":出现次数 的key:value形式存到对象中. //如果此字符已经出现过,便将它的出现次数+1 //最后遍历对象,比较每个key的value值,取到出现最多的字符和其出现的次数 var str="asjfhsdhdkghdnmjhsafjhsf"; function getMaxCount(str){ var Obj={}; //定义一个空对象 fo…
//通过Map 类实现,通过键值对的方式,可以将输入的字符串的每一个字符,作为键,每个字符出现的次数作为值:如下: public class Find { public static void main(String[] args){ String scan=new Scanner(System.in).nextLine();//获取键盘上输入的字符串: Map<Character,Integer> map = new HashMap<Character,Integer>();//…
String.prototype.getQuery = function(name){var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");var r = this.substr(this.indexOf("\?")+1).match(reg);if (r!=null) return unescape(r[2]); return null;}var s = "i…
/** 取出字符串中重复字数最多的字符 */ var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa'; //创建字符串 var word, //单个字符 length; //该字符的长度 //定义输出对象 var max = { wordName : '', //重复次数最多的字符 wordLength : 0 //重复的次数 }; //递归方法,传入字符串 (function(words) { if (!words) return; //如果字符串已经…