leetcode反转字符串c++
时间: 2023-09-12 08:09:27 浏览: 159
要反转一个字符串,可以使用双指针的方法。具体实现如下:
```cpp
#include <algorithm>
void reverseString(vector<char>& s) {
int left = 0;
int right = s.size() - 1;
while (left < right) {
// 交换左右指针所指向的字符
swap(s[left], s[right]);
left++;
right--;
}
}
```
上述代码中,我们使用两个指针 `left` 和 `right` 分别指向字符串的首尾元素。然后,我们不断交换 `left` 和 `right` 指针所指向的字符,并将 `left` 向右移动、`right` 向左移动。直到 `left` 不再小于 `right`,反转完成。
注意,我们传入的字符串 `s` 是一个引用,这样在函数内部修改 `s` 的内容会反映到函数外部。
希望能解答到您的问题!如有更多疑问,请继续提问。
相关问题
leetcode编写过程中,c++如何用reverse反转部分字符串
可以使用C语言中的库函数strrev来反转字符串。如果需要反转字符串的一部分,可以使用指针和循环语句来实现。例如,可以使用指针指向需要反转的子串的起始地址和结束地址,然后使用循环语句不断交换两个指针所指向的字符,直到指针相遇为止。具体的代码实现可以参考下面的示例:
```
void reverse(char* str, int start, int end) {
char* p1 = str + start;
char* p2 = str + end;
while (p1 < p2) {
char tmp = *p1;
*p1 = *p2;
*p2 = tmp;
p1++;
p2--;
}
}
```
其中,str是需要反转的字符串,start和end分别表示反转子串的起始和结束位置。使用该函数可以实现反转部分字符串的功能。
阅读全文