LeetCode 557. 反转字符串中的单词 III

题目描述

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc" 

注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

思路

由于字符串中不会有任何额外的空格,根据空格来找单词,将每个单词依次进行字符串的反转即可,字符串的反转可以看我这篇博客:LeetCode反转字符串

AC代码(Java)

class Solution {
    public String reverseWords(String s) {
        char[] cl = s.toCharArray();
        int start = 0;
        int nextSpace = s.indexOf(' ',start);  // 返回字符串s从索引start开始的第一个空格的索引,若没有,则返回-1
        while(nextSpace != -1) {
            reverse(cl,start,nextSpace - 1);
            start = nextSpace + 1;
            nextSpace = s.indexOf(' ',start);
        }
        reverse(cl,start,cl.length - 1);
        return new String(cl);
    }
    
    public void reverse(char[] cl,int start,int end){
        while(start < end){
            char temp = cl[start];
            cl[start] = cl[end];
            cl[end] = temp;
            start ++;
            end --;
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例: 输入: "Let'...
    闭门造折阅读 1,652评论 0 0
  • 1、题目大意: 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1:...
    ZeroForSpider阅读 3,138评论 0 0
  • 最近看到一篇关于超市的评论,说的是超市其实是一个非常有学问的地方,昨晚吃过晚饭去验证了一下重邮附件的永辉超市,果然...
    464123e1a2e9阅读 2,688评论 0 0
  • 眉前天青色, 烟雨恋红尘。 凝神洗轻狂, 闭目路迷茫。
    大清晨的小太阳阅读 1,891评论 0 1
  • 四六级靠什么提分快? 除了阅读, 那么 就是听力了! 但听力是很多人的致命问题, 那么, 如何提高听力呢? 下面,...
    碗上阅读 2,372评论 0 4

友情链接更多精彩内容