首页 > NC89 字符串变形 疑惑
头像
牛客323343395号
编辑于 2021-08-25 13:33
+ 关注

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;
    }
};



全部评论

(0) 回帖
加载中...
话题 回帖

相关热帖

近期精华帖

热门推荐