题解 | #单词倒排#
单词倒排
https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836
//再分享一个稍微巧妙一点的解法
#include <stdio.h>
#include <string.h>
int main()
{
char c;
char word[5000][21];
int num=0,top=0,flag=0;
while((c = getchar())!=EOF)
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{
//将单词放入一行
word[num][top++]=c;
//flag为0表示目前没遇到非字母符号
flag=0;
}
else
{
//遇到分隔字符就换一行
if(flag==0)
{
num++;
top=0;
//flag记录是否已经遇到分隔符号并换行,遇到连续的分隔符号,只换一次行
flag=1;
}
}
}
for(int i=num-1;i>=0;i--)
{
//从下往上遍历打印,一行是一个单词
printf("%s ",word[i]);
}
return 0;
}