题解 | #单词倒排#
单词倒排
https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
#include <string.h> #include <stdio.h> #include <ctype.h> // void move(char* arr, int i, int tail) // { // while(i < tail) // { // char tmp = arr[i]; // arr[i] = arr[tail]; // arr[tail] = tmp; // i++; // tail--; // } // } int main() { char arr[10010]; gets(arr); int len = strlen(arr); for (int i = 0; i < len; i++) { if (!isalpha(arr[i])) { arr[i] = ' '; } } for (int i = len-1; i >= 0;) { if (i >=0 && isalpha(arr[i])) { while(i >=0 && isalpha(arr[i])) { i--; } printf("%s ", &arr[i+1]); } while(i >=0 && arr[i] == ' ') { i--; } if (i >= 0) { arr[i+1] = '\0'; } } return 0; }