• 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 }
  • 相关阅读:
    HttpApplication处理对象与HttpModule处理模块
    HttpHandler与HttpModule的用处与区别
    ASP.NET管线与应用程序生命周期
    IIS架构与HTTP请求处理流程
    构造函数的选择与服务生命周期管理
    堆排序
    WebApi异常
    Java NIO内存映射---上G大文件处理(转)
    Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
    redis入门(转)
  • 原文地址:https://www.cnblogs.com/nashiyue/p/3915722.html
Copyright © 2020-2023  润新知