前端基础的算法

1字符串回文的判断 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环 将一个字符串首尾倒序排列,如果与原字符串相等,则这个字符串回文。 反过来重新排列,具体的思路就是:

1.原先的字符串并不知道是什么情况,我们需要统一处理换成小写

2.用 plalindrome()函数 处理 将原来的字符串用split()转换为数组,

3.将数组反转用 reverse()函数,然后重新拼接起成新的字符串 join()

4.使用全等进行比较

5.参考资料 https://www.w3cplus.com/javascript/palindrome-check-in-javascript.html

6.还可以添加筛选的方法 str.replace(regexp|substr, newSubStr|function)

7.具体参数方法 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace

补充一点在 处理字符串的时候 toLowerCase() / toLocaleCase()是为了处理针对于特定地区的实现(土耳其)

    var str1 = 'abcdefgh';
    var str2 = 'abcdcba';
    function plalindrome(str){
        return str.toLowerCase() === str.toLowerCase().split('').reverse().join('');
       /*
       var re = /[\w_]/;  // 或者 var re = /[A-Za-z0-9]/g;
       var lowRegstr = str.toLowerCase().replace(re, '');
       var reverseStr = loeRegstr.split('').reverse().join('');
       return lowRegstr === reverseStr;
       */
    }

    console.log(plalindrome(str1));  
    console.log(plalindrome(str2)); 

数组去重 思路:简单来说就是通过新数组对原来数组的检索,判断数组元素是否重复 具体用到的 indexOf() 从0开始

 var arr = [2,4,2,2,5,6,7,8,9,9,9];
function unique(arr){
    var arr1 = [];
    for(var i = 0; i < arr.length; i++){
        // 要检索的字符串值没有出现,则该方法返回 -1。有的话你懂的
        if(arr1.indexOf(arr[i]) == -1){
            arr1.push(arr[i]);
        }
    }
    return arr1;
}
console.log(unique(arr));  

统计一个字符串中出现最多的字母 思路: 在另外一个数组中存放原数组每个元素出现的位置次数,且次数跟存放不重复数组的下标对应 然后取出最多的次数,对应的下标就是不重复数组里面那个出现次数最多的元素的下标 用的知识点

1.indexOf()

2.Math.max.apply() http://www.cnblogs.com/airbreak/p/4595424.html

js巧用apply方法实现数组最值,以及合并

var min = Math.min.apply(null, arr); 参数必须是数组

var max = Math.max.apply(null, arr);

Array.prototype.push.apply(arrA, arrB); // 将数组 arrB push 到 数组 arrA 中

var str1 = "jhadfgskjfajhdewqe";
var arr = str1.split('');

function MostUnit1(){
    var arr1 = [];
    var arr2 = [];
    for( var i=0; i<arr.length;i++){
         if(arr1.indexOf(arr[i]) == -1){
             arr1.push(arr[i]);
             arr2.push(1);
         }else{
             arr2[arr1.indexOf(arr[i])] ++;
         }
    }
    console.log(arr2);
    console.log(arr1[arr2.indexOf(Math.max.apply(Math,arr2))])
};
MostUnit1();

转载于:https://my.oschina.net/u/3520255/blog/1630614

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值