题解 | 字符串变形
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
class Solution {
public:
    string trans(string s, int n) {
        for(int i=0; i<s.length(); i++){
            if(s[i]>='a' && s[i]<='z')
                s[i] = s[i] - 'a' + 'A';
            else if(s[i]>='A' && s[i]<='Z')
                s[i] = s[i] - 'A' + 'a';
        }
        stack<string> st;
        string curr = "";
        for(int i=0; i<s.length(); i++){
            if(s[i]!=' ')
                curr += s[i];
            else{
                st.push(curr);
                curr = "";
            }
        }
        st.push(curr);
        string res;
        while(!st.empty()){
            curr = st.top();
            st.pop();
            res += curr + ' ';
        }
        res.pop_back(); // 去掉多余的一个空格
        return res;
    }
};
这题踩了一个大坑,就是超时问题。
limit=1s,但是最后一个用例我这里显示运行了1001ms。
将res = res + curr + ' '改为res += curr + ' '即可;
另外一个string拼接也改为这样,就能省很多时间。拼接太费时间了,stack的push和pop其实也很费时间,还能优化。
