题解 | #翻转单词序列#

翻转单词序列

https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return string字符串
 */
//将start-end区域的字符串倒序
#include <stdio.h>
void Reverse(char* start, char* end){
    char tmp;
    while(start < end){
        tmp = *start;
        *start = *end;
        *end = tmp;
        start++, end--;
    }
}

char* ReverseSentence(char* str ) {
    // write code here
    char* cur = str;
    char* last = str;
    char tmp;
    while(*last != '\0')last++; //找到末尾
    //整个字符串倒序
    Reverse(cur, last-1);
    // printf("%s", str);

    cur = str, last = cur;
    while(*cur != '\0'){		//逐个单词倒序
        while(*cur != ' ' && *cur != '\0')cur++; 
        //倒序
        Reverse(last, cur-1);//cur-1回到空格或结束符前一个位置
        if(*(cur+1) == '\0')break;
        cur++, last = cur;  //cur跳过空格
    }
    return str;
}

全部评论

相关推荐

牛客928043833号:在他心里你已经是他的员工了
点赞 评论 收藏
分享
求面试求offer啊啊啊啊:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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