Page cover

🚴‍♂️单序列双指针

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function (s) {
    let left = 0  // 初始化左指针
    let right = s.length-1  // 初始化右指针
    while (left <= right) {  // 当左指针小于等于右指针时继续循环
        const temp = s[left]  // 交换元素:将左指针的值存储到临时变量
        s[left] = s[right]  // 将右指针的值赋给左指针
        s[right] = temp  // 将临时变量的值赋给右指针
        left++  // 左指针右移
        right--  // 右指针左移
    }
    return s  // 返回修改后的数组
};

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false

最后更新于

这有帮助吗?