编写一个反转字符串的函数。输入字符串作为字符数组给出s。
您必须通过使用额外内存就地修改输入数组来完成此操作O(1)。
示例 1:
输入: s = [“h”,“e”,“l”,“l”,“o”]
输出: [“o”,“l”,“l”,“e”,“h”]
示例 2:
输入: s = [“H”,“a”,“n”,“n”,“a”,“h”]
输出: [“h”,“a”,“n”,“n”,"a “,“H”]
约束:
1 <= s.length <= 105
s[i]是可打印的 ascii 字符。
思路
设置两个指针, 分别指向左右, 然后换位置…
class Solution {
public void reverseString(char[] s) {
int i = 0, j = s.length - 1;
while (i < j) {
char temp=s[i];
s[i] = s[j];
s[j] = temp;
i++;
j--;
}
}
}
时间复杂度O(n/2)