经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
剑指Offer-翻转单词顺序列
来源:cnblogs  作者:武培轩  时间:2018/9/30 10:45:08  对本文有异议

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?

思路

用栈,单词依次进栈出栈实现翻转

代码实现

  1. package String;
  2. import java.util.Stack;
  3. public class Solution56 {
  4. public static void main(String[] args) {
  5. Solution56 solution56 = new Solution56();
  6. String str = "student. a am I";
  7. System.out.println(solution56.ReverseSentence(str));
  8. }
  9. /**
  10. * 单词依次入栈出栈实现反转
  11. *
  12. * @param str
  13. * @return
  14. */
  15. public String ReverseSentence(String str) {
  16. if ("".equals(str.trim()) || str.length() == 0 || str == null) {
  17. return str;
  18. }
  19. String[] split = str.trim().split(" ");
  20. Stack<String> stack = new Stack<>();
  21. for (int i = 0; i < split.length; i++) {
  22. stack.push(split[i]);
  23. }
  24. String res = stack.pop();
  25. while (!stack.isEmpty()) {
  26. res += " " + stack.pop();
  27. }
  28. return res;
  29. }
  30. }
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号