题解 | #字符串变形#

字符串变形

https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e

class Solution {
  public:
    string trans(string s, int n) {
        stack<string> sk;
        string str;
        s.push_back(' ');//避免特判
        for (int i = 0; i <= n; ++i) { //注意此时单词长度为n+1
            if (s[i] == ' ') {
                sk.push(str);//以空格为界进行压栈  到空格了就把str放到 sk[i+1]的位置
                str = "";// 空格清空str 
            } else {
                if (s[i] >= 'a' && s[i] <= 'z') {
                    str += (s[i] - 'a' + 'A'); //在str 的基础上加上大小写变化后的字
                } else {
                    str += (s[i] - 'A' + 'a');
                }
            }
        }
        string ans;
        while (!sk.empty()) {
            //从栈中逐个弹出单词
            ans += sk.top(); //顶元素是最后进去的元素 放到ans里
            sk.pop();//释放掉最后一个
            ans.push_back(' ');//加空格
        }
        ans.pop_back();//去除最后一个单词后的空格
        return ans;
    }
};

全部评论

相关推荐

06-18 16:45
门头沟学院 Java
点赞 评论 收藏
分享
nus22016021404:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务