Reverse Words in a String

来源:互联网 发布:apache 配置php报错 编辑:程序博客网 时间:2024/06/11 01:21

Given an input string, reverse the string word by word.

For example,
Given s = “the sky is blue”,
return “blue is sky the”.

Update (2015-02-12):
For C programmers: Try to solve it in-place in O(1) space.

给你一个字符串,里面是一个个的单词,返回倒序的单词组合。

import java.util.Stack;public class ReverseWordsinaString {    /*     * Given s = "the sky is blue", return "blue is sky the".     */    public static String reverseWords(String s) {        Stack<String> st = new Stack<String>();        // 直接使用split 效率不高        int begin = 0;        int end = s.length()-1;        // 实现trim        while (begin <= end && s.charAt(begin) == ' ') {            begin++;        }        while (begin <= end && s.charAt(end) == ' ') {            end--;        }        if (begin > end)            return "";        StringBuffer sb = new StringBuffer();        while (begin <= end) {            //每次都要首先去掉多余空格            while (begin <= end && s.charAt(end) == ' ') {                end--;            }            int tempEnd = end;            while(begin <= end&&s.charAt(end) != ' ') {                end--;            }            String tempString = s.substring(end+1, tempEnd + 1);            sb.append(tempString + " ");            end--;        }        sb.deleteCharAt(sb.length()-1);        return sb.toString();    }    public static void main(String[] args) {        // TODO Auto-generated method stub        String s = "   a   b ";        System.out.print(reverseWords(s));    }}
0 0
原创粉丝点击