美文网首页
LeetCode 151. 翻转字符串里的单词

LeetCode 151. 翻转字符串里的单词

作者: 不会游泳的金鱼_ | 来源:发表于2019-06-06 14:24 被阅读0次

    题目

    给定一个字符串,逐个翻转字符串中的每个单词。

    示例 1:

    输入: "the sky is blue"
    输出: "blue is sky the"

    示例 2:

    输入: " hello world! "
    输出: "world! hello"
    解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

    示例 3:

    输入: "a good example"
    输出: "example good a"
    解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

    说明:

    • 无空格字符构成一个单词。
    • 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
    • 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

    思路

    用栈结构即可,将字符串按照空格分割,把所有非空格单词和一个空格压入栈中,然后出栈重新组合成字符串即可。

    代码

    class Solution {
        public String reverseWords(String s) {
            if(s == null || s.trim().equals("")) return "";
            Stack<String> stack = new Stack<>();
            for(String temp :s.split(" ")) {
                if(!temp.trim().equals("")){
                    stack.push(temp);
                    stack.push(" ");
                }
            }
            stack.pop();
            StringBuffer sb = new StringBuffer();
            while(!stack.isEmpty()){
                sb.append(stack.pop());
            }
            return sb.toString();
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode 151. 翻转字符串里的单词

          本文链接:https://www.haomeiwen.com/subject/wngsxctx.html