題目描述
難度級別:簡單
編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。
不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。
你可以假設數組中的所有字符都是 ASCII 碼錶中的可打印字符。
示例 1:
輸入:["h","e","l","l","o"]
輸出:["o","l","l","e","h"]
示例 2:
輸入:["H","a","n","n","a","h"]
輸出:["h","a","n","n","a","H"]
解題思路
雙指針
使用雙指針,一個指向頭,一個指向尾,兩兩交換,當兩頭指針小於尾指針時停止循環。
const reverseString = function(s) {
for (let i = 0, j = s.length - 1; i < j; i++, j--)
[s[i], s[j]] = [s[j], s[i]]
};
時間複雜度:O(n)
空間複雜度:O(1)
題目來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reverse-string