class Solution { public: string reverseOnlyLetters(string S) { int len = S.size(); string res; int i = 0, j = len - 1; while (i < len) { char c = S[i]; if (isalpha(c)) { while (j >= 0 && !isalpha(S[j]))--j; res += S[j--]; } else res += S[i]; ++i; } return res; } };