感恩节特辑:微软真题-反转单词II

关注代码笔记哥有助于升职加薪噢!

欢迎来到笔记哥讲题 第15期

LeetCode 186. 在字符串中反转单词

感恩节

今天(2018.11.22)是美国的感恩节,首先祝大家节日快乐。

文末我会简单分享一点感恩节的历史文化。

下面先来看题。

题意

在给定的一个字符串中反转单词。单词的定义是:一段被空格分开的连续的字符集。给定的字符串不包含前置多余空格或后置多余空格。每个单词之间仅被一个空格分开。

要求: In-place 地把给定的字符串进行单词反转。

样例:

输入:

[“I”, “ “, “l”, “o”, “v”, “e”, “ ”, “y”, “o”, “u”]

输出:

[“y”, “o”, “u”, “ “, “l”, “o”, “v”, “e”, “ “, “I”]

核心思路

思考过程:

假如我只反转一次字符串,我能得到什么?

反转两次呢?

I love you

反转一次: uoy evol I

反转两次: you love I

三步翻转法。 从 冒泡排序(笔记哥讲题第4期) 与 选择排序(第5期) 得到经验。

算法呈现

三步走:

总体:双指针法,指针i 指向单词的开头,j指向单词结尾后的空格或者整个字符串尾

先翻转整个字符串

然后对每一个单词,进行翻转

详情请见视频。

视频

1. 腾讯视频链接

点击边框调出视频工具条

2. YouTube链接https://youtu.be/bSf8iwxYSgo

历史上的今天

感恩节的由来

1620年,英国的五月花号(May Flower)满载着一群寻求信仰自由的清教徒到达北美大陆。他们到达的那年冬天,许多人饥寒交迫,染病身亡。但是,在印第安人的帮助下,这些新移民学会了狩猎,种植玉米和南瓜,并在来年获得了大的丰收。在欢庆丰收之日,这些欧洲新移民邀请印第安人来一同感谢上帝的赐予。

感恩节起初没有固定的日期。1941年,美国国会规定感恩节为每年的11月的第4个星期四,并从这一天起,休假一天。今年的感恩节即为2018年11月22日。

感恩节的鸡汤

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181123G0021H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券