zoukankan      html  css  js  c++  java
  • 151 Reverse Words in a String 翻转字符串里的单词

    给定一个字符串,翻转字符串中的每个单词。
    例如,
    给定 s = "the sky is blue",
    返回 "blue is sky the"。
    对于C程序员:请尝试用O(1) 时间复杂度的原地解法。
    说明:
        什么构成一个词?
        一系列非空格字符组成一个词。
        输入字符串是否可以包含前导或尾随空格?
        是。但是,您的反转字符串不应包含前导或尾随空格。
        两个单词之间多空格怎么样?
        将它们缩小到反转字符串中的单个空格。
    详见:https://leetcode.com/problems/reverse-words-in-a-string/description/

    实现语言:Java

    方法一:

    public class Solution {
        public String reverseWords(String s) {
            String[] words = s.trim().split("\s+");
            StringBuilder result = new StringBuilder();
            for (int idx = words.length - 1; idx >= 0; idx--) {
                result.append(words[idx]+" ");
            }
            return result.toString().trim();
        }
    }
    

    方法二:

    public class Solution {
        public String reverseWords(String str) {
            String[] words = str.trim().split(" +");
            Collections.reverse(Arrays.asList(words));
            return String.join(" ", words);
        }
    }
    

     方法三:

    public class Solution {
        public String reverseWords(String str) {
            String result = "";
            String[] words = str.trim().split(" ");
            Stack<String> stack = new Stack<>();
            for (String s : words) {
                if (s.length() > 0) {
                    stack.push(s);
                }
            }
            while (!stack.isEmpty()) {
                result += (stack.pop() + (stack.size() > 0 ? " " : ""));
            }
            return result;
        }
    }

    参考:http://www.cnblogs.com/grandyang/p/4606676.html

  • 相关阅读:
    3.15第三周编程总结
    2019.3.9编程总结
    2019.3.3编程总结2
    编程总结1
    编程总结2
    编程总结3
    我的老师
    关于sublime text 3使用记录
    12. 整数转罗马数字
    4. 寻找两个有序数组的中位数
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8727937.html
Copyright © 2011-2022 走看看