`
betakoli
  • 浏览: 166596 次
社区版块
存档分类
最新评论

LeetCode 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".

click to show clarification.

给定一个字符串,将字符串中的英文单词反转过来:

实现一:以单词作为整体的方式,实现

public class Solution {
    public String reverseWords(String s) {
        s=s.trim();
    	s=s.replaceAll("[ ]+", " ");
        String[] words = s.split(" ");
        StringBuffer sb  =new StringBuffer();
        for(int i=words.length-1;i>=0;i--)
        {
        	sb.append(words[i]+" ");
        }
    	return sb.toString().trim();
    }
}

 实现二:遍历字符串中的每一个字符来实现

public class Solution {
    public String reverseWords(String s) {
		 if(s==null)
			 return s;
		 Stack stack = new Stack();
		 int i=s.length()-1;
		 StringBuffer sb =new StringBuffer();
		 while(i>=0)
		 {
			 char c = s.charAt(i);
			 if(c==' ')
			 {
				 i--;
				 while(i>=0&&s.charAt(i)==' ')
					 i--;
				 
				 if(!stack.empty())
				 {
					 while(!stack.empty())
					 {
						 char ch = (Character) stack.pop();
						 sb.append(ch);
					 }
					 sb.append(" ");
					 stack = new Stack();
				 }
			 }
			 else{
				 i--;
				 stack.push(c);
			 }
		 }
		 if(!stack.empty())
		 {
			 while(!stack.empty())
			 {
				 char ch = (Character) stack.pop();
				 sb.append(ch);
			 }
		 }
		 if(sb.length()>0&&sb.charAt(sb.length()-1)==' ')
		 sb.deleteCharAt(sb.length()-1);
		 return sb.toString();
	 }
}

 

 

分享到:
评论

相关推荐

    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 ...

    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/...

    leetcode写题闪退-LeetCode:leetcodeOJ

    leetcode写题闪退 #*的多少代表此题的有意思程度 有几题第一次写的时候思绪比较混乱: *****Regular Expression Matching 2014.10.29 对于Find Minimum in Rotated Sorted Array II 和 Find Minimum in Rotated ...

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

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

    leetcode-go:我使用Golang解决LeetCode问题的方法

    goMy solution to LeetCode problems using GolangProblems 题库Array 数组NoTitle题名DifficultyStatus11Container With Most Water盛最多水的容器MediumSolved26Remove Duplicates from Sorted Array删除有序数组...

    leetcode338-coding_notebook:编码_笔记本

    第 338 章概括 [(雅虎)4。 两个排序数组的中位数](Leetcode 问题/数组和字符串/4.median_of_two_sorted_array.md) [(雅虎)13。...String/151.reverse_words_in_a_string.md) [167. Two Sum 2 - In

    TWDH#Leetcode-From-Zero#13.反转字符串中的单词 III1

    557. 反转字符串中的单词 IIIpublic String reverseWords(String s) {StringBuilder sb = new S

    leetcode中国-leetCodeSolution::thumbs_up:leetCode刷题项目

    reverseWords titleToNumber toLowerCase defangIPaddr replaceSpace removeOuterParentheses 复杂题目值得参考 sortString 使用字典排序 sort((a, b) => a.charCodeAt() - b.charCodeAt()) 有参考价值 Maths isPal

    leetcode字符串括号level-leetcode:LeetCode解题记录

    reverseWords 翻转字符串里的单词 simplifyPath 简化路径 restoreIPAddresses 复原IP地址 threeSum 三数之和 search 搜索旋转排序数组 1. 3. 9. 75. 209. 219. 167. 268. 344. 349. 454. 447. 695. 674. string 字符...

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

    题目描述 151. 翻转字符串里的单词 解法一:(Python) class Solution: def reverseWords(self, s: str) -> str: return " ".join(reversed(s.split())) 解法二:双端队列(C++) ... string reverseWords(strin

    cpp-算法精粹

    Reverse Nodes in k-Group Copy List with Random Pointer Linked List Cycle Linked List Cycle II Reorder List LRU Cache Palindrome Linked List 字符串 Valid Palindrome Implement strStr() String to Integer...

Global site tag (gtag.js) - Google Analytics