题解 | #字符串变形#

字符串变形

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @param n int整型
 * @return string字符串
 */


char* trans(char* s, int n ) {
    for (int i = 0; i < n; i++) {
        if (s[i] - 'A' < 32 && s[i] != ' ') {
            s[i] = s[i] + 32;
        } else if (s[i] - 'A' >= 32 && s[i] != ' ') {
            s[i] = s[i] - 32;
        }
    }
    // write code here
    for (int i = 0; i < n / 2; i++) {
        char tem = s[i];
        s[i] = s[n - i - 1];
        s[n - i - 1] = tem;
    }
    // 反转每个单词
    char* start=s;
    for(int i=0;i<=n;i++){
        if(s[i]==' '|| s[i]=='\0'){
            int len=s+i-start;
            for(int j=0;j<len/2;j++){
                start[j]=start[j]^start[len-j-1];
                start[len-j-1]=start[j]^start[len-j-1];
                start[j]=start[j]^start[len-j-1];               
            }
            start=s+i+1;
        }

    }
    return s;
}

全部评论

相关推荐

藏剑天涯:全要了 领4份工资
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务