LeetCode 186. 翻转字符串里的单词 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”]
LeetCode 186. 翻转字符串里的单词 II
提示:
单词的定义是不包含空格的一系列字符
输入字符串中不会包含前置或尾随的空格
单词与单词之间永远是以单个空格隔开的
一、解题关键词
二、解题报告
1.思路分析
翻转字符串
2.时间复杂度
3.代码示例
class Solution {
public void reverseWords(char[] s) {
int len = s.length;
reverse(s,0,len - 1);
int start = 0;
for(int i = 0; i < len; i++){
if(s[i] == ' '){
reverse(s,start,i - 1);
start = i+1;
}
}
reverse(s,start,len - 1);
}
void reverse(char[] s,int start,int end){
while(start < end){
char tmp = s[start];
s[start] = s[end];
s[end] = tmp;
start++;
end --;
}
}
}
2.知识点