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

LeetCode - 反转字符串中的单词③

作者头像
晓痴
发布2019-07-24 14:05:53
1.5K0
发布2019-07-24 14:05:53
举报
文章被收录于专栏:曌的晓痴

LeetCode第557题,难度是简单,一个月三周以前刷的题目。突然意识到,我真的已经又是一个月没有写过LeetCode了,又变懒了,勤奋果然大都是暂时的。

原题地址:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/

题目描述

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

示例 1:

输入: "Let's take LeetCode contest"

输出: "s'teL ekat edoCteeL tsetnoc"

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

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

想法很简单:

  1. 先把字符串按照空格拆分
  2. 从尾部遍历所有的字符串,然后把每个字符都拼接到StringBuilder后面
  3. 每次读完一个字符串,就加一个空格

一共遍历两次数组?对split不够熟悉,所以不敢确定。

第二种方法:

直接从尾部遍历字符串,然后把没有到空格之前的所有字符都放到Stack里面,有空格就从stack里面取出来。

中文官网题解:

https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/solution/

个人题解:

代码语言:javascript
复制
class Solution {
    public String reverseWords(String s) {
        String[] strings = s.split(" ");
        StringBuilder stringBuilder = new StringBuilder(s.length());
        for (int i = 0; i < strings.length; i++) {
            char[] chs = strings[i].toCharArray();
            for (int j = chs.length - 1; j >= 0; j--) {
                stringBuilder.append(chs[j]);
            }
            if (i != strings.length - 1) {
                stringBuilder.append(' ');
            }
        }
        return stringBuilder.toString();
    }
}

结果:

又回归了正常水平,也就是50%的水平。

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

本文分享自 曌的晓痴 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档