Leetcode刷题100天—3. 无重复字符的最长子串(双指针)—day21
Posted 神的孩子都在歌唱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题100天—3. 无重复字符的最长子串(双指针)—day21相关的知识,希望对你有一定的参考价值。
前言:
作者:神的孩子在歌唱
大家好,我叫运智
557. 反转字符串中的单词 III
难度简单321收藏分享切换为英文接收动态反馈
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
提示:
- 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/solution/fan-zhuan-zi-fu-chuan-zhong-de-dan-ci-iii-by-lee-2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
package 双指针;
public class _557_反转字符串中的单词III {
// 这里可以使用双指针解决,当右指针指向空格时候就反转字符,然后左指针在指向右指针前一位
public static String reverseWords(String s) {
// 使用额外空间
StringBuilder ret=new StringBuilder();
// 初始化指针
int left=0,right=0;
while(right<s.length()) {
// 如果右指针等于空格
System.out.println(s.charAt(right));
if (s.charAt(right)==' ') {
// 开始逆序遍历存入ret
int pivot=right-1;
while(left<=pivot) {
ret.append(s.charAt(pivot));
pivot--;
}
ret.append(s.charAt(right));
left=right+1;
}else if(right+1==s.length()){
// 开始逆序遍历存入ret
int pivot=right;
while(left<=pivot) {
ret.append(s.charAt(pivot));
pivot--;
}
}
right++;
}
return ret.toString();
}
public static void main(String[] args) {
String string="Let's take LeetCode contest";
String string2=reverseWords(string);
System.out.print(string2);
}
}
本人csdn博客:https://blog.csdn.net/weixin_46654114
转载说明:跟我说明,务必注明来源,附带本人博客连接。
以上是关于Leetcode刷题100天—3. 无重复字符的最长子串(双指针)—day21的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—3. 无重复字符的最长子串(双指针)—day21
Leetcode刷题100天—217. 存在重复元素(哈希表)—day11