1.判断回文数
let num=12345654321
let nums=123456
function palindrome(num){
let arr=(num+'').split("")
let num1=arr.reverse().join("")
if(num1==num){
console.log("是回文数");
}else{
console.log("不是回文数");
}
}
palindrome(num)
palindrome(nums)
复制代码
在这里我用的方法是字符串切割成数组(split)方法,然后运用了数组的方法倒序(reverse),最后用了数组转字符串的方法(join),然后判断一下新获取到的字符串是否等于传进来的字符串,在这里第一个调用结果会在控制台打印——是回文数,第二个调用打印的是——不是回文数。
2.查找字符串中出现最多的字符
let str = "aaassffffddd";
function findMaxDuplicateChar(str) {
var cnt = {}, // 用来记录所有的字符的出现频次
c = ""; // 用来记录最大频次的字符
for (var i = 0; i < str.length; i++) {
var ci = str[i];
if (!cnt[ci]) {
cnt[ci] = 1;
} else {
cnt[ci]++;
}
if (c == "" || cnt[ci] > cnt[c]) {
c = ci;
}
}
console.log(cnt);
return c;
}
复制代码
在这里我是先循环了字符串每一个字符,在判断里边!cnt[ci]是判断的如果我这个cnt对象里边没有ci这个字符的时候自动存一个进去并且初始值为1,如果有这个字符了就在他的基础上加1,然后再判断如果c为空的时候c就为当前字符,如果cnt[ci]>cnt[c]也就是如果ci这个字符出现的次数大于c字符出现的次数就给c重新赋值为ci,c就是出现次数最多的字符了。
3.链表的反转
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
let s=null;
let n=head;
// 1 2 3
while(n){
// 2 3 null
let next=n.next
// 1->null 2->1 3->2
n.next=s
// 1 2 3
s=n
// 2 3 null
n=next
}
return s
};
复制代码
这道题是力扣题库里边的一道算法题,比如传入的链表是{val:1,next:{val:2,next:{val:3,next:null}}}这个链表通过head传入,把head的值给n然后循环n如果n存在则一直循环如果是null,则停止循环。
第一次传入的是n为1 声明一个next,next的值为当前值的next也就是2 当前值的前边值就为null 声明的上一次的值为当前值也就是n也就是1 当前的这个n等于下一个值也就是next也就是2 然后走第二次循环
第二次传入的是n为2 声明一个next,next的值为当前值的next也就是3 当前值的前边值就为1(这个地方上次循环的时候重新复制了) 声明的上一次的值为当前值也就是n也就是2 当前的这个n等于下一个值也就是next也就是3 然后走第三次循环
第三次传入的是n为3 声明一个next,next的值为当前值的next也就是null 当前值的前边值就为2(这个地方上次循环的时候重新复制了) 声明的上一次的值为当前值也就是n也就是3 当前的这个n等于下一个值也就是next也就是null 因为是null所以循环结束
s现在就等于3所以return s 就是反转后的链表





















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)