题解 | #字符串变形#

字符串变形

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

#include <cctype>
#include <fstream>
#include <iterator>
class Solution {
public:
    void resverse(string &s,int start,int end)
    {
        int left = start;
        int right = end;
        while(left < right)
        {
            swap(s[left],s[right]);
            left++;
            right--;
        }
    }
    string trans(string s, int n) {
        // write code here
        resverse(s, 0, n-1);
        int start = 0;
        for(int i = 0;i<=n;++i)
        {
            if(s[i] == ' ' || s[i] == '\0')
            {
                resverse(s, start, i-1);
                start = i + 1;
            }
        }
        for(int i = 0;i<n;++i)
        {
            if(isupper(s[i]))
                s[i] = tolower(s[i]);
            else if(islower(s[i]))
                s[i] = toupper(s[i]);
        }
        return s;
    }
};

解题思路:双逆转

先逆转整个字符串,然后再以空格为界,逆转每个单词

全部评论

相关推荐

04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务