【算法08天:Day8】第四章字符串 LeetCode 反转字符串II(541)

62 阅读1分钟

题目二:

image.png

解题思路:按照题意进行模拟,奇怪的是右边区间我并没有添加限制条件,竟然也通过了,感觉测试用例有问题。

image.png

其实这个题用k = 3,s = 'a - o'进行模拟,就知道规律应该是这样了,用k = 2,不太容易看出来。

image.png

总结:通过这题,了解到JS还能这样交换位置,不过还是不太懂是怎么实现的,我得去看看了。

JS交换变量方法总结:

  1. 空变量
let num,
    a=123,
    b=456;
    num=a;
    a=b;
    b=num;
console.log(a,b);
  1. 利用算数和或算数减
let a=123,
    b=456;
    a+=b;
    b=a-b;
    a-=b;
console.log(a,b);
  1. 利用位
 let a = 123,
     b = 456;
     a ^= b;
     b ^= a;
     a ^= b;
     console.log(a, b);
 
//或者这样
a = (b^=a^=b)^a;
  1. 利用对象
let a=123,
    b=456;
    a = {a:b,b:a};
    b = a.b;
    a = a.a;
    console.log(a,b);
  1. 利用数组
 let a = 123,
     b = 456;
     a = [a, b];
     b = a[0];
     a = a[1];
     console.log(a, b);
  1. 仅供参考的大神写法
 let a = 123,
     b = 456;
     a = [b,b=a][0];
     console.log(a, b);
  1. ES6 解构赋值
let a = 123,
    b = 456;
    [a,b] = [b,a];
    console.log(a, b);