这道题很久以前写过,字节跳动一面的时候也让写的是这道题,所以还是写出来了哈哈哈
把www.toutiao.com逆置成com.toutiao.www
#include<iostream>
#include<string>
using namespace std;
void reverse_str(string &str, int low, int high)
{
char tmp;
while (low < high)
{
tmp = str[low];
str[low] = str[high];
str[high] = tmp;
low++;
high--;
}
}
void reverse(string &str)
{
if (str.empty())
return;
int low = 0;
int high = str.size() - 1;
//先全部进行反转
reverse_str(str, low, high);
int i = 0;
int j = 0;
while (j < str.size() && i < str.size())
{
//以.为分割符,再分别逆置每一部分
if (str[j] == ' ')
{
reverse_str(str, i, j - 1);
i = j + 1;
j = j + 1;
}
else
{
++j;
}
}
//逆置最后一部分
if(str[j] == '\0')
reverse_str(str, i, j - 1);
}
int main()
{
string str;
//cin >> str;
getline(cin, str);
cout << str << endl;
reverse(str);
cout << str << endl;
return 0;
}