单词逆序问题​,栈实现

单词逆序

http://www.nowcoder.com/questionTerminal/ef2a0e61f17243f2a0124e8e6c09eb68

思路:最简单的就是利用栈的FILO的特性,当然也可以用数组,但思路就没这么清晰明了了
  1. 先利用spilt()函数将字符串按单词拆分
  2. 再将拆分的结构压进栈
  3. 最后出栈,拼接一下即可
代码:
package 瓜子;

import java.util.Scanner;
import java.util.Stack;

//单词逆序问题
public class Main1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        s = reverse(s);
        System.out.println(s);
    }

    public static String reverse(String s) {
        //辅助栈
        Stack stack = new Stack();
        //按单词拆分字符串
        String[] ss = s.split(" ");
        for (int i = 0; i < ss.length; i++) {
            stack.push(ss[i]);
        }
        //出栈以及字符串拼接,注意这里不要用String和"+",因为"+"会消耗大量时间和资源
        StringBuffer sb = new StringBuffer();
        while (!stack.isEmpty()) {
            sb.append(stack.pop()+" ");
        }
        return sb.toString();
    }

}


全部评论

相关推荐

13 收藏 评论
分享
牛客网
牛客企业服务