前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每天一道leetcode-557反转字符串中的单词 III

每天一道leetcode-557反转字符串中的单词 III

作者头像
乔戈里
发布2019-09-17 16:10:41
3360
发布2019-09-17 16:10:41
举报
文章被收录于专栏:Java那些事

前言

每天的题目见github(看最新的日期): https://github.com/gzc426

昨天的题解

题目

每天一道leetcode-557反转字符串中的单词 III 分类:字符串

题目详述

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

示例 1:

输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

题目详解

思路

  • 首先按照空格分割字符串,然后对于每一个字符串进行字符串反转;
  • 再把反转后的字符串拼接起来。

代码

代码语言:javascript
复制
class Solution {
    public String reverseWords(String s) {
        String [] list = s.split(" ");//按照空格分割字符串
       //String result = "";//String 比StringBuffer 效率低!
        StringBuffer result = new StringBuffer();//这里建议用StringBuffer,
        for(int i=0;i<list.length - 1;i++)
        {//对于分割后的每一个字符串进行反转,反转以后再加到里面
            result.append(reverse(list[i]) + " ");
        }
        result.append(reverse(list[list.length - 1]));//最后一个末尾没有空格分开处理
        return result.toString();
    }
    public String reverse(String s)
    {//反转字符串
        char [] charArray = s.toCharArray();//转字符数组
        int i =0;int j = charArray.length - 1;
        while(i < j)
        {
            char ch = charArray[i];
            charArray[i] = charArray[j];
            charArray[j] = ch;//交换前后两个字符
            i++;
            j--;//移动到下一对需要交换的字符上
        }
        return String.valueOf(charArray);//字符数组转字符串
    }
}

代码截图(为了避免代码排版错乱

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员乔戈里 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 昨天的题解
    • 题目
      • 题目详述
        • 题目详解
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档