题解 | #翻转单词序列#
翻转单词序列
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; }