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

leetcode刷题3.无重复字符的最长子串

#leetcode刷题之路3-无重复字符的最长子串

leetcode力扣刷题系列python——3无重复字符的最长子串

Leetcode刷题100天—387. 字符串中的第一个唯一字符(字符串)—day27