题解 | #翻转单词序列#
翻转单词序列
https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return string字符串
*/
#include <stdlib.h>
#include <string.h>
char* ReverseSentence(char* str ) {
// write code here
int len = strlen(str);
char* arr = (char*) calloc(len + 1, sizeof(char) );
int size = 0;
char* arr2 = (char*) calloc (len + 1, sizeof(char));
int size2 = 0;
for (int i = len - 1; i >= 0; i--) {
if (str[i] != ' ') {
arr[size++] = str[i];//不是空格 入栈arr
} else {
while (size > 0) { //是空格,arr出栈至arr2
arr2[size2++] = arr[--size];
}
arr2[size2++] = ' ';//出栈完毕,补一个空格
}
}
while (size > 0) { //最后剩下的还未出栈的部分
arr2[size2++] = arr[--size];
}
arr[size++] = 0;//arr2 补一个结束符
return arr2;
}
查看20道真题和解析
