var str = "fsfssgsgsngmshj"; //1 先将字符串转换成数组 var newArr = str.split(""); //2 创建一个对象 var obj = {}; //3 遍历数组,判断对象中是否存在数组中的值,如果存在值+1,不存在赋值 ...
写在前面:大学时没有刷过的算法题迟早要补回来,计划是先去网上找一些经典的算法题,如数组排序,去重等等,然后再去leetcode由简至难按照标签继续刷题,我也会在博客里持续更新我刷的题目,感兴趣的话欢迎关注我。 思路: 新建一个空对象obj保存数组中数字出现的次数 遍历数组,如果该数字出现过,则obj中以该数字为key的value加 若该数字未出现过,则obj中以该数字为key的value设为 遍历 ...
2018-03-16 21:57 0 1594 推荐指数:
var str = "fsfssgsgsngmshj"; //1 先将字符串转换成数组 var newArr = str.split(""); //2 创建一个对象 var obj = {}; //3 遍历数组,判断对象中是否存在数组中的值,如果存在值+1,不存在赋值 ...
js代码如下: <script> var str = 'asdasdasdasddddasdfdgsaads'; var json = { ...
求一个字符串中连续出现的次数最多的子串。例如字符串“abababc”,最多连续出现的为ab,连续出现三次。要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab。两个题目的解法有些类似,都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生 ...
举个例子说明一下:例如找到字符串mainStr="abcabcabcde"中连续出现次数最多的子串,可以看出"abc"出现3次,是出现次数最多的子串。对于该题可以用穷举法,一一列举每个子串连续出现的最大次数。 如下图1,对于每一个子串都从当前位置i=pos1(子串开始位置)进行遍历,其中j ...
把字符串用后缀树的形式表现出来如下: a b c a b c a b c d e .substr[0] b c a b c a b c d e ....substr[1] c a b c a b c d e .......substr[2] a b c a b c d e ...
函数的结构差不多,实际都是对数组的处理 一个主要的思路:新建一个空的数组newarr!将要处理的数组(字符串转成数组)的元素做为键 存入新数组,根据键的唯一做判断,如果新数组newarr中没有这个键,那么就存入,并给 值 ...
最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 这是我个人的想法,然后第二种方法就是利用对象的key值不能重复这一特性实现 function maxstringload(str) { var obj ...
学习了别人的方法,觉得挺巧妙的。就是每次取出字符串的第一个字符,将字符串中与第一个字符相同的字符全部删除掉,然后通过计算删除前后字符串的长度来确定该字符在字符串中出现的次数,最终比较出出现最多次的字符。 ...