class Solution {
public:
string trans(string s, int n) {
if (n == 0)
return s;
string res;
for (int i = 0; i < n; i++) {
//大小写转换 fast-template
if (s[i] <= 'Z' && s[i] >= 'A')
res += s[i] - 'A' + 'a';
else if (s[i] >= 'a' && s[i] <= 'z')
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;
}
};
/*class Solution {
public:
string trans(string s, int n) {
string p="",q="";
for(int j=0;j<n;j++)
{
if(s[j]==' ')
{
p=" "+q+p;
q="";
continue;
}
if(s[j]>='a'&&s[j]<='z')
{
s[j]+='A'-'a';
}
else if(s[j]>='A'&&s[j]<='Z')
{
s[j]+='a'-'A';
}
q+=s[j];
if(j==(n-1))
{
p=q+p;
}
}
return p;
}
};*/