/* 与 HJ12 和 HJ13类似。 本题比前面的多了 判断字符是否是字母的操作 */ #include <algorithm> #include <cctype> #include <iostream> using namespace std; string reverseStr(string str) { int len = str.length(); string ans; // 非字母用空格代替 for(auto c : str){ if( isalpha(c) ){ ans.append(1, c); }else{ ans.append(1, ' '); } } reverse(ans.begin(), ans.end()); len = ans.length(); for (int i = 0; i < len; ++i) { int j = i; while (ans[j] != ' ' && j < len) { j++; } reverse(ans.begin() + i, ans.begin() + j); i = j; } return ans; } int main() { string str; getline(cin, str); cout << reverseStr(str) << endl; return 0; } // 64 位输出请用 printf("%lld")