leetcode186. 翻转字符串里的单词 II
【摘要】 给定一个字符串,逐个翻转字符串中的每个单词。
示例:
输入: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"] 输出: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"] 注意:
单词的定义是不包含空格的一系列字符 输入字符串...
给定一个字符串,逐个翻转字符串中的每个单词。
示例:
输入: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
输出: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]
注意:
单词的定义是不包含空格的一系列字符
输入字符串中不会包含前置或尾随的空格
单词与单词之间永远是以单个空格隔开的
进阶:使用 O(1) 额外空间复杂度的原地解法。
思路:先反转每个单词,然后总体再翻转。
-
class Solution {
-
public void reverseWords(char[] s) {
-
int start=0;
-
for(int i=0;i<s.length;i++){
-
if(s[i]==' '){
-
reverseWord(s,start,i-1);
-
start=i+1;
-
}
-
}
-
reverseWord(s,start,s.length-1);
-
reverseWord(s,0,s.length-1);
-
}
-
public void reverseWord(char[] s,int start,int end){
-
char temp;
-
while(start<end){
-
temp=s[start];
-
s[start]=s[end];
-
s[end]=temp;
-
start++;
-
end--;
-
}
-
}
-
}
文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。
原文链接:fantianzuo.blog.csdn.net/article/details/104100599
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)