NC89 字符串变形 疑惑

NC89 字符串变形 是不是出问题了啊,排行中的好多代码都不能全部通过测试用例
这个是我自己的代码
class Solution {
public:
    char changeUpDown(char c)
    {
        if(c >= 'a' && c <= 'z') return c - 'a' + 'A';
        else if(c >= 'A' && c <= 'Z') return c - 'A' + 'a';
        else return c;
    }
    
    string trans(string s, int k) {
        std::cout << s.size() << std::endl;
        string ans = "";
        string word = "";
        int n = k;
        for(int i = n - 1; i >= 0; --i)
        {
            if(s[i] == ' ')
            {
                ans.append(word + " ");
                word.clear();
            }
            else{
                word = changeUpDown(s[i]) + word;
                if(i == 0)
                    ans.append(word);
            }
        }
        return ans;
    }
};
这个是我在NC89 C++排行第三中复制的代码 (两份代码都是17/20不能通过)
class Solution {
public:
    string trans(string s, int n) {
        // write code here
        reverse(s.begin(),s.end());
        //再分别反转,并将字符变为大写字符
        int start =0 ;
        while (start<n&&s[start]==' ') ++start;
        for (int i=start;i<n;++i) {
            if (s[i]==' ') {
                 reverse(s.begin()+start,s.begin()+i);
                start = i+1;
            }
            else {
                if (s[i]>='a'&&s[i]<='z') {
                    s[i] = 'A'+(s[i]-'a');
                }
                else s[i] = 'a'+(s[i]-'A');
            }
        }
        reverse(s.begin()+start,s.end());
        return s;
    }
};



#C/C++#
全部评论

相关推荐

2025-12-29 20:37
已编辑
清华大学附属小学 Java
开始打牌offer啦:1.为什么要写这么多内容呀 2.什么叫做简历 3.什么样的内容可以写到简历上 4.项目可以包装,但是要有理有据呀,不能乱包装呀,比如 跨境能达到日均120万订单的在国内都是能叫的上名字的,而且这些工作也基本上不太会交给一个实习生去做 建议友友可以去网上或者找同学的简历看看,他们的简历是怎么写的,去找找上面的那四个问题的答案吧,然后要记住的是Java是服务于业务的,而不是服务于微服务或者技术的
最后再改一次简历
点赞 评论 收藏
分享
01-14 16:23
广州商学院 Java
双非后端失败第N人:如果准备好了可以直接投字节,字节是最不看学历的,只要想面,大概率都能给你约面。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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