string trans(string s, int n)
{
if(n == 0) return s;
string res;
for(int i=0; i<n; i++)
{
if(s[i]>='A' &&s[i]<='Z')
{
res += s[i] - 'A' + 'a';//大变小
}
else if
{
res += s[i] - 'a' + 'A';//小变大
}
else
{
res += s[i];//空格
}
}
reverse(res.begin(), res.end());
for(int i = 0; i < n; i++)
{
int j = i;
//以空格为界,二次翻转
while(j < n && res[j] != ' ')
j++;
reverse(res.begin() + i, res.begin() + j);
i = j;
}
return res;
}
字符串反转写法
void reverseString(vector<char>& s) {
int n = s.size();
for (int left = 0, right = n - 1; left < right; ++left, --right) {
swap(s[left], s[right]);
}
}