151. Reverse Words in a String

栏目: Java · 发布时间: 6年前

内容简介:Given an input string, reverse the string word by word.Example:Note:

Given an input string, reverse the string word by word.

Example:

Input: "the sky is blue",
Output: "blue is sky the".

Note:

A word is defined as a sequence of non-space characters.
Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.
You need to reduce multiple spaces between two words to a single space in the reversed string.

Follow up: For C programmers, try to solve it in-place in O(1) space.

难度:medium

题目:给定字符串,反转字符串中的单词。

注意:单词指一组非空字符。输入的字符串可能包含前后空格。你需要在两个单词之间只保留一个空格。

思路:先反转,然后逐个单词反转。

Runtime: 9 ms, faster than 37.01% of Java online submissions for Reverse Words in a String.

Memory Usage: 38.8 MB, less than 100.00% of Java online submissions for Reverse Words in a String.

public class Solution {
    public String reverseWords(String s) {
        StringBuilder sb = new StringBuilder(" " + s + " ");
        sb.reverse();
        StringBuilder result = new StringBuilder();
        int begin = 0;
        for (int i = 0; i < sb.length() - 1; i++) {
            char c1 = sb.charAt(i);
            char c2 = sb.charAt(i + 1);
            if (c1 == ' ' && c2 != ' ') {
                begin = i;
            } else if (c1 != ' ' && c2 == ' ') {
                for (int j = i; j >= begin; j--) {
                    result.append(sb.charAt(j));
                }
            }
        }
        
        return result.toString().trim();
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机系统基础

计算机系统基础

袁春风 / 机械工业出版社 / 2014-7-1 / CNY 49.00

《计算机类专业系统能力培养系列教材:计算机系统基础》主要介绍与计算机系统相关的核心概念,解释这些概念如何相互关联并最终影响程序执行的结果和性能。共分8章,主要内容包括数据的表示和运算、程序的转换及机器级表示、程序的链接、程序的执行、存储器层次结构、虚拟存储器、异常控制流和I/O操作的实现等。内容详尽,反映现实,概念清楚,通俗易懂,实例丰富,并提供大量典型习题供读者练习。本书可以作为计算机专业本科或......一起来看看 《计算机系统基础》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具