【JS力扣刷题笔记】344. 反转字符串、541. 反转字符串 II

这是跟着代码随想录的顺序学习算法的第十天。

以下是学习题解时自己的一些理解与笔记,有错误欢迎指正与讨论。


344. 反转字符串、541. 反转字符串 II

参考相关链接:

344. 反转字符串

541. 反转字符串 II

代码随想录


笔记

344. 反转字符串

这题思路很简单,主要是代码随想录里面大佬写的 JS 版本又双叒叕秀了我一下。。。

// 自己写的
var reverseString = function(s) {
    for (var i = 0; i < s.length/2; i++) {
        const temp = s[i];
        s[i] = s[s.length - i - 1];
        s[s.length - i - 1] = temp;
    }
    return s;
};

// 代码随想录
var reverseString = function(s) {
    return s.reverse();
};

var reverseString = function(s) {
    let l = -1, r = s.length;
    while(++l < --r) [s[l], s[r]] = [s[r], s[l]];
    return s;
};

541. 反转字符串 II

字符串不可变性,用 str.split('')str.join('') 来解决。

[a, b] = [b, a]; 可实现交换a, b
// 代码随想录JS版本
var reverseStr = function(s, k) {
    const len = s.length;
    let resArr = s.split(""); 
    for(let i = 0; i < len; i += 2 * k) {
        let l = i - 1, r = i + k > len ? len : i + k; // 末尾临界判断
        while(++l < --r) [resArr[l], resArr[r]] = [resArr[r], resArr[l]];
    }
    return resArr.join("");
};
上一篇:【商业逻辑】企业该选择人工还是智能?看完你就明白啦!


下一篇:Linux环境基础开发工具使用