题解 | #句子逆序#双指针做法
句子逆序
https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3
#include <iostream> #include <string> using namespace std; void swapString(string& a, int fast, int low) { //将字符串全部翻转 char temp; while (low < fast) { temp = a[low]; a[low] = a[fast]; a[fast] = temp; low++; fast--; } } void prString(string a) { int fast = a.size() - 1; int low = 0; //将字符串全部翻转 swapString(a, fast, low); //按正确顺序输出 fast = 0; low = 0; while (fast <= a.size()) { if (a[fast] == ' ' || fast == a.size()) { swapString(a, fast - 1, low); low = fast + 1; } fast = fast + 1; } for (int i = 0; i < a.size(); i++) { cout << a[i]; } } int main() { string s; getline(cin, s); prString(s); return 0; } // 64 位输出请用 printf("%lld")