题解 | #句子逆序#双指针做法
句子逆序
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")
上海得物信息集团有限公司公司福利 1240人发布
