zoukankan      html  css  js  c++  java
  • LeetCode-Reverse Words in a String[AC源码]

     1 package com.lw.leet1;
     2 
     3 import java.util.Stack;
     4 
     5 /**
     6  * @ClassName:Solution
     7  * @Description:
     8  *         Reverse Words in a String 
     9  *         Total Accepted: 26194 Total Submissions: 187094 My Submissions
    10  *         Given an input string, reverse the string word by word.
    11  * 
    12  *         For example
    13  *             Given s = "the sky is blue"
    14  *             return "blue is sky the".
    15  * 
    16  *         Clarification:
    17  *             What constitutes a word?
    18  *             A sequence of non-space characters constitutes a word.
    19  *         Could the input string contain leading or trailing spaces?
    20  *             Yes. However, your reversed string should not contain leading or trailing spaces.
    21  *         How about multiple spaces between two words?
    22  *             Reduce them to a single space in the reversed string.
    23  * 
    24  * @Author LiuWei
    25  * @Date 2014年8月15日下午7:48:48
    26  * @Mail nashiyue1314@163.com 
    27  */
    28 public class Solution {
    29     
    30     public String reverseWords(String word){
    31         Stack<String> sstack = new Stack<String>();
    32         int flag = 0;
    33         for(int i= 0; i<word.length(); i++){
    34             while(i<word.length() && word.charAt(i)==' '){
    35                 i++;
    36             }
    37             flag = i;
    38             while(i<word.length() && word.charAt(i)!=' '){
    39                 i++;
    40             }
    41             if(flag != i){
    42                 sstack.push(word.substring(flag, i));
    43             }
    44         }
    45         String res = "";
    46         while(!sstack.isEmpty()){
    47             res += sstack.pop()+" ";
    48         }
    49 //        The input string which is made up of space
    50         if(res.length()==0){
    51             return "";
    52         }
    53         return res.substring(0, res.length()-1);
    54     }
    55     
    56     public String reverseWords2(String word){
    57         String res ="";
    58         int flag = 0;
    59         for(int i= 0; i<word.length(); i++){
    60             while(i<word.length() && word.charAt(i)==' '){
    61                 i++;
    62             }
    63             flag = i;
    64             while(i<word.length() && word.charAt(i)!=' '){
    65                 i++;
    66             }
    67             if(flag != i){
    68                 res = word.substring(flag, i)+" "+res;
    69             }
    70         }
    71 //        The input string which is made up of space
    72         if(res.length()==0){
    73             return "";
    74         }
    75         return res.substring(0, res.length()-1);
    76     }
    77     
    78     public static void main(String[] args){
    79         Solution s = new Solution();
    80         System.out.println(s.reverseWords2("   hello world    "));
    81     }
    82 }
  • 相关阅读:
    python调包——hashlib加密
    初识-图论基础+拓扑排序的实现
    初识 基本数据结构和stl
    【寒假作业三】-带着作业的幌子打开影视剧的奇妙体验和学会挂作业的机
    scapy模块的学习
    【寒假作业三】——高级代码拼接工人的养成(改)
    寒假作业二-自救指南(网络基础)
    【寒假作业一】-编写踩雷指南
    寒假作业一-Github部分
    markdown基础(试水)
  • 原文地址:https://www.cnblogs.com/nashiyue/p/3915722.html
Copyright © 2011-2022 走看看