反转单词顺序 VS 左旋转字符串

Posted zhibei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转单词顺序 VS 左旋转字符串相关的知识,希望对你有一定的参考价值。

题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标垫符号和普通字母一样处理。例如输入字符串“I am a student.”,则输出“student. a am I ”.

解题思路:第一翻转句子中所有的字符。比如翻转“I am a student.”中所有的字符得到“.tneduts a ma I”,此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了,第二步再翻转每个单词中字符的顺序,就得到了“student. a am I”.这正是符合题目要求的输出。

 

题目二:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串“abcdef”和数字2,该函数将返回左旋转2位得到的结果“cdefgab”.

解题思路:以“abcdefg”为例,我们可以把它分成两部分。由于想把它的前两个字符移到后面,我们就把前两个字符分到第一部分,把后面的所有字符都分到第二部分。我们先分别翻转这两部分,于是就得到“bagfedc”。接下来我们再翻转整个字符串,得到的“cdefgab”刚好就是把原始字符串左旋转2位的结果。

 

以上是关于反转单词顺序 VS 左旋转字符串的主要内容,如果未能解决你的问题,请参考以下文章

代码随想录算法训练营第8天 | ● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer 05.替换空格 ● 151.翻转字符串里的单词 ● 剑指Offer58-II.左旋转字符串

剑指Offer对答如流系列 - 翻转字符串

43左旋转字符串+三步反转法

剑指offer题目--面试中的各项能力章

循环左移操作 (左旋转字符串)

15118954158-II翻来翻去