单词逆序问题,栈实现
单词逆序
http://www.nowcoder.com/questionTerminal/ef2a0e61f17243f2a0124e8e6c09eb68
思路:最简单的就是利用栈的FILO的特性,当然也可以用数组,但思路就没这么清晰明了了。
- 先利用spilt()函数将字符串按单词拆分
- 再将拆分的结构压进栈
- 最后出栈,拼接一下即可
代码:
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(); } }