#include <cctype>
#include <stack>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param n int整型
* @return string字符串
*/
string trans(string s, int n) {
string res;
for(int i=0;i<n;++i){
if(isupper(s[i]))
res+=toLower(s[i]);
else if(islower(s[i]))
res+=toUpper(s[i]);
else res+=s[i];
}
std::stack<string> stack;
string mystr;
for(int i=0;i<n;i++){
if(isalpha(res[i])){
mystr+=res[i];
}else{
if(!s.empty())
stack.push(mystr);//使用栈交换单词次序
mystr.clear();
}
if(i==n-1) stack.push(mystr);
}
mystr.clear();
while(!stack.empty()){
mystr+=stack.top();
stack.pop();
if(!stack.empty()){
mystr+=" ";
}
}
return mystr;
}
char toLower(char c) {
if (c >= 'A' && c <= 'Z') {
return c + 32;
}
return c;
}
char toUpper(char c) {
if (c >= 'a' && c <= 'z') {
return c - 32;
}
return c;
}
};