#yyds干货盘点# 解决剑指offer:翻转单词序列

Posted 97的风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 解决剑指offer:翻转单词序列相关的知识,希望对你有一定的参考价值。

1.简述:

描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?

数据范围:#yyds干货盘点#

进阶:空间复杂度 #yyds干货盘点# ,时间复杂度 #yyds干货盘点# ,保证没有只包含空格的字符串

示例1

输入:

"nowcoder. a am I"

返回值:

"I am a nowcoder."

复制

示例2

输入:

""

返回值:

""

2.代码实现:

import java.util.*;
public class Solution
//字符串反转函数
private void reverse(char [] c, int l, int h)
//双指针反转
while(l < h)
swap(c, l++, h--);

//字符交换函数
private void swap(char [] c, int l, int h)
char temp = c[l];
c[l] = c[h];
c[h] = temp;


public String ReverseSentence(String str)
int n = str.length();
char[] c = str.toCharArray();
//第一次整体反转
reverse(c, 0, n - 1);
for(int i = 0; i < n; i++)
int j = i;
//以空格为界找到一个单词
while(j < n && c[j] != )
j++;
//将这个单词反转
reverse(c, i, j - 1);
i = j;

return new String(c);



以上是关于#yyds干货盘点# 解决剑指offer:翻转单词序列的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 解决剑指offer:跳台阶扩展问题

#yyds干货盘点# 解决剑指offer:对称的二叉树

#yyds干货盘点# 解决剑指offer:构建乘积数组

#yyds干货盘点# 解决剑指offer:数组中的逆序对

#yyds干货盘点# 解决剑指offer:机器人的运动范围

#yyds干货盘点# 解决剑指offer:重建二叉树