题解 | #单词倒排#

单词倒排

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

#include <stdio.h>
#include <string.h>
char* reverse(char* p, char* end)
{
	char* start = p;
	while (end > p)
	{
		char t = *p;
		*p = *end;
		*end = t;
		end--;
		p++;
	}
	return start;
}

int main()
{
	char arr[10001] = { 0 };
	gets(arr);
	int len = strlen(arr);
	for (int i = 0; i < len; i++)
	{
		if (islower(arr[i]) || isupper(arr[i]))
			;
		else
			arr[i] = ' ';
	}
	reverse(arr, arr + len - 1);
	char* start = arr;
	while (*start)
	{
		char* end = start;
		while (*end != ' ' && *end != '\0')
		{
			end++;
		}
		reverse(start, end - 1);
		start = end + 1;

	}
	printf("%s\n", arr);

	return 0;
}

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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