LeetCode-Reverse Words in a String
Posted IncredibleThings
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-Reverse Words in a String相关的知识,希望对你有一定的参考价值。
Given an input string, reverse the string word by word.
Example:
Input: "the sky is blue
", Output: "blue is sky the
".
Notes:
- 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.
用 stack 做
public class Solution { public String reverseWords(String s) { if(s == null || s.length() == 0){ return s; } Stack<String> stack = new Stack<>(); StringBuilder sb = new StringBuilder(); for(int i=0; i<s.length(); i++){ char c = s.charAt(i); if(c != ‘ ‘){ sb.append(c); } if((i == s.length() - 1 || c == ‘ ‘) && sb.length() != 0){ stack.push(sb.toString()); sb.delete(0,sb.length()); } } int count = 0; while(!stack.isEmpty()){ if(count == stack.size()-1){ sb.append(stack.pop()); } else{ sb.append(stack.pop()+" "); } } return sb.toString(); } }
以上是关于LeetCode-Reverse Words in a String的主要内容,如果未能解决你的问题,请参考以下文章
leetcode-Reverse Words in a String-151
LeetCode-Reverse Vowels of a String