344, 反转字符串
小于 1 分钟
一、题目描述
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组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 <= 10⁵
s[i]
都是ASCII码表中的可显示字符
相关主题
- 双指针
- 字符串
二、题解
方法 1: 双指针
pub fn reverse_string(s: &mut Vec<char>) {
let mut l = 0;
let mut r = s.len() - 1;
while l < r {
s.swap(l, r);
l += 1;
r -= 1;
}
}
public void reverseString(char[] s) {
int l = 0;
int r = s.length - 1;
while (l < r) {
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r--;
}
}