算法学习
BM91 反转字符串
https://www.nowcoder.com/practice/c3a6afee325e472386a1c4eb1ef987f3?tpId=295&sfm=html&channel=nowcoder
题目描述:写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
思路:
双指针交换
1.准备两个指针,从字符串一首一尾同时出发;
2.每次交换二者指向的字符,直到二者相遇,这样刚好可以将字符串首尾交换,完成反转;
代码实现:
#include <iostream>
using namespace std;
class Solution {
public:
string Solve(string str) {
int left = 0; //左指针
int right = str.length() - 1; //右指针
while (left < right) //两个指针往中间靠
{
swap(str[left],str[right]); //交换字符
left++;
right--;
}
return str;
}
};