`

Reverse Words in a String

阅读更多
Given an input string, reverse the string word by word.

For example,
Given s = "the sky is blue",
return "blue is sky the".

给定一个字符串,将里面包含的单词倒叙排列。我们可以将字符串通过空格分割成一个字符串数组,然后从后面开始组成一个新的字符串。这里要注意的是分割字符串我们用到了String的split()方法,split的参数类型是个正则表达式,不是简单的字符串,我们要用转义字符来写,例如用空格来分的话最好写成“\\s” 或者“\\s+”,代表通过一个空格或多个空格来分割。通过返回一个字符串数组的代码如下:
public class Solution {
    public String reverseWords(String s) {
        String[] result = s.trim().split("\\s+");
        StringBuilder sb = new StringBuilder();
        for(int i = result.length - 1; i >= 0; i--) {
                    sb.append(result[i] + " ");
        }
        return sb.toString().trim();
    }
}


另外一种方法我们还可以从字符串末尾开始扫描,如果遇到空字符就跳过,知道遇到不为空的字符,标记当前字符的位置,然后继续扫描,直到遇到下一个为空的字符,用substring方法将这一段子串记录到新的字符串中,这样知道扫描完整个字符串。代码如下:
public class Solution {
    public String reverseWords(String s) {
        if(s == null || s.length() == 0) return s;
        StringBuilder sb = new StringBuilder();
        for(int i = s.length() - 1; i >= 0 ; i--) {
            if(s.charAt(i) == ' ') continue;
            int end = i;
            while(i >= 0 && s.charAt(i) != ' ') i --;
            sb.append(s.substring(i + 1, end + 1)).append(" ");
        }
        return sb.toString().trim();
    }
}
0
0
分享到:
评论

相关推荐

    Reverse words in a string-leetcode

    Reverse words in a string-leetcode

    Coding Interview In Java

    2 Reverse Words in a String II 19 3 Evaluate Reverse Polish Notation 21 4 Isomorphic Strings 25 5 Word Ladder 27 6 Word Ladder II 29 7 Median of Two Sorted Arrays 33 8 Kth Largest Element in an Array ...

    js-leetcode题解之151-reverse-words-in-a-string.js

    javascript js_leetcode题解之151-reverse-words-in-a-string.js

    python-leetcode题解之151-Reverse-Words-in-a-String.py

    python python_leetcode题解之151_Reverse_Words_in_a_String.py

    python-leetcode题解之186-Reverse-Words-in-a-String-II.py

    python python_leetcode题解之186_Reverse_Words_in_a_String_II.py

    常见算法题答案及解析

    6. Reverse Words in a String:给定一个字符串,将其单词反转并保持单词内部顺序不变。 7. Reverse Words in a String II:字符串处理,涉及到对字符串的反转和单词的分割。 8. String to Integer (atoi):将字符串...

    Leetcode book刷题必备

    7. Reverse Words in a String II:翻转字符串中的单词顺序,并且整个字符串也要翻转。 8. String to Integer (atoi):将字符串转换成整数,考虑溢出等问题。 9. Valid Number:判断一个字符串是否是有效的数字表示...

    Coding Interview in Java

    5. 字符串处理问题:例如Candy(糖果)、Trapping Rain Water(接雨水)、Reverse Words in a String II(翻转字符串中的单词)等,考察候选人对字符串操作的熟练度。 6. 动态规划问题:如Minimum Size Subarray ...

    oj题.zip

    1. **151.py** - 这个编号可能是LeetCode中的问题151,题目名为"Reverse Words in a String"(字符串中的单词反转)。这个题目主要考察字符串操作,包括字符串分割、反转和重新组合。 2. **207.py** - 这可能是...

    CleanCodeHandbook_v1.0.3

    - Reverse Words in a String(字符串中的单词翻转) - String to Integer (atoi)(字符串转换整数) - Longest Substring Without Repeating Characters(无重复字符的最长子串) 4. Math(数学): 算法题目中...

    算法刷题笔记leetcode/lintcode

    - Reverse Words in a String(反转字符串中的单词) - Valid Palindrome(回文字符串验证) - Longest Palindromic Substring(最长回文子串) - Space Replacement(URL化) - Wildcard Matching(通配符匹配...

    LeetCode最全代码

    421 | [Maximum XOR of Two Numbers in an Array](https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/) | [C++](./C++/maximum-xor-of-two-numbers-in-an-array.cpp) [Python](./Python/...

    小象学院2020 刷题班 3.2-4.171

    3. **反转字符串中的单词**(Reverse Words in a String III) - 知识点:字符串处理,分隔符处理 - 解题策略:将字符串先按空格分割成单词数组,然后对数组进行反转,最后将单词数组连接起来,并在单词之间添加...

    資料結構與演算法 leetcode, lintcode 題解

    - **翻轉字符串中的單詞(Reverse Words in a String)** - 单词的定义与翻转方法。 - 字符串處理技術。 - **有效回文串(Valid Palindrome)** - 判斷字符串是否為回文串。 - 忽略大小寫與非字母數字字符。 - **...

    算法学习笔记

    - Reverse Words in a String:反转字符串中的所有单词。 - Valid Palindrome:检查一个字符串是否是回文。 - Longest Palindromic Substring:找到字符串中的最长回文子串。 - Remove Element:从数组中移除给定的...

    lintcode算法分析和解答

    - **反转字符串中的单词(Reverse Words in a String)** - 反转字符串中单词的顺序。 - **有效的回文字符串(Valid Palindrome)** - 判断一个字符串是否是回文字符串。 - **最长回文子串(Longest Palindromic ...

    leetcode2sumc-Leetcode-2020:刷刷Leetcode并作纪录

    leetcode 2 sum c Leetcode 练习记录 这个专案主要存放我练习Leetcode有针对难度分类的集合题库(Collection ...Reverse Words in a String medium O 这题有点算是easy的程度, 目前解法为O(n^2)的时

    Leetcode代码以及解答(2)

    Reverse Words in a String **知识点:** - **问题描述:** - 给定一个字符串,反转其中的每个单词,并保持单词顺序不变。 - **解决方案分析:** - **双指针:** - 先反转整个字符串。 - 再从左到右遍历,...

    leetcode写题闪退-LeetCode:leetcodeOJ

    Reverse Words in a String C++实现时那个返回值是void也着实让我困惑了好久 Subsets DFS实现,竟然还WA了好几次。 Climbing Stairs 入门级记忆化dp 2014.10.30 Merge Sorted Array 归并排序基础 Remove Duplicates ...

Global site tag (gtag.js) - Google Analytics