zoukankan      html  css  js  c++  java
  • 【LeetCode刷题Java版】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.

    Clarification:

    • What constitutes a word?
      A sequence of non-space characters constitutes a word.
    • Could the input string contain leading or trailing spaces?
      Yes. However, your reversed string should not contain leading or trailing spaces.
    • How about multiple spaces between two words?
      Reduce them to a single space in the reversed string.
    package com.liuhao.acm.leetcode;
    
    /**
     * @author liuhao
     * 
     *         Given an input string, reverse the string word by word. For example,
     *         Given s = "the sky is blue", return "blue is sky the".
     */
    public class ReverseWords {
    
    	public static String reverseWords(String s) {
    
    		// 若输入字符串直接是空串。则直接返回该字符串
    		if (s.equals("")) {
    			return "";
    		}
    
    		// 将字符串按空格"\s{1,}"进行切割,一个或者多个空格的正则:"\s{1,}"
    		String[] strArr = s.split("\s{1,}");
    		int len = strArr.length;
    
    		// 切割后字符串变成空串,直接返回
    		if (len == 0) {
    			return "";
    		}
    
    		// 用StringBuilder更加有效
    		StringBuilder sb = new StringBuilder("");
    
    		// 反向输出之前切割的字符串数组
    		for (int i = len - 1; i >= 0; i--) {
    			if (!strArr[i].equals("")) {
    				sb.append(strArr[i]);
    				sb.append(" ");
    			}
    		}
    
    		sb.deleteCharAt(sb.lastIndexOf(" "));
    		
    		return sb.toString();
    	}
    
    	public static void main(String[] args) {
    		System.out.println(reverseWords(""));
    	}
    
    }
    

  • 相关阅读:
    展示
    发布说明
    团队作业Week14
    Scrum Meeting NO.10
    Scrum Meeting NO.9
    Scrum Meeting NO.8
    Scrum Meeting NO.7
    Scrum Meeting NO.6
    ES6/ES2015核心内容
    用React & Webpack构建前端新闻网页
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6882534.html
Copyright © 2011-2022 走看看