【题目】输入“I am a student.”》》》“.tneduts a ma I”。>>输出:student. a am I

  1. package com.exe9.offer;
  2.  
  3. /**
  4. * 【题目】“I am a student.”》》》“.tneduts a ma I”。>>student. a am I
  5. * @author WGS
  6. *
  7. */
  8. public class ReverseWordsInSentence {
  9. public void Reverse(char[] str,int begin,int end){
  10. if(str==null || str.length<=0) return ;
  11. while(begin<=end){
  12. char temp=str[begin];
  13. str[begin]=str[end];
  14. str[end]=temp;
  15. begin++;
  16. end--;
  17. }
  18.  
  19. }
  20.  
  21. public String getReverseSentence(String str){
  22. if(str==null || str.length()<=0) return str;
  23. char[] charStr=str.toCharArray();
  24. //1 先反转整个句子
  25. int len=charStr.length;
  26. int begin=0;
  27. int end=len-1;
  28. Reverse(charStr,begin,end);//.tneduts a ma I
  29. begin=end=0;
  30.  
  31. //2 反转每个单词
  32. while(begin<len){
  33. //如果开始就是空格 则为无效字符
  34. if(charStr[begin]==' '){
  35. begin++;
  36. end++;
  37. }else if(end==len || charStr[end]==' ' ){//当end达到最后一位或者遇到空格,就表示一个单词的结束,就开始反转此单词
  38. Reverse(charStr,begin,--end);
  39. begin=++end;
  40. }else{
  41. end++;
  42. }
  43. }
  44. return new String(charStr);
  45.  
  46. }
  47.  
  48. public static void main(String[] args) {
  49. ReverseWordsInSentence revese=new ReverseWordsInSentence();
  50. String str=revese.getReverseSentence("I am a student.");
  51. System.out.println(str);
  52.  
  53. }
  54.  
  55. }

剑指offer系列47---翻转单词顺序的更多相关文章

  1. 剑指 Offer 58 - I. 翻转单词顺序 + 双指针

    剑指 Offer 58 - I. 翻转单词顺序 Offer_58_1 题目描述 方法一:使用Split函数 package com.walegarrett.offer; /** * @Author W ...

  2. 力扣 - 剑指 Offer 58 - I. 翻转单词顺序

    题目 剑指 Offer 58 - I. 翻转单词顺序 思路1 假如题目要求我们翻转字符串,那么我们可以从末尾往前开始遍历每一个字符,同时将每一个字符添加到临时空间,最后输出临时空间的数据就完成翻转了, ...

  3. 剑指 offer set 19 翻转单词顺序 && 字符串左旋

    题目 1. 翻转单词 student. a am I 转换成 I am a student. 2. 字符串左旋 abba 1 转成 bbaa 总结 1. 先对每个单词旋转, 再整齐旋转 2. 先翻转一 ...

  4. 剑指 Offer 58 - I. 翻转单词顺序

    本题 题目链接 题目描述 我的题解 方法一:库函数split() 要注意str.split()函数: 字符串str前有 n 个空格时,分割出来的字符串列表中会多出 n 个空字符串: 字符串str某两个 ...

  5. 剑指offer系列34----按之字形顺序打印二叉树

    [题目]请实现一个函数按照之字形打印二叉树, * 即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印, * 其他行以此类推. 未优化,不是最优解,博主用的是队列 ...

  6. 干货 | 剑指offer系列文章汇总

    下面是名企面试中经常会出现的面试题目,大家可以戳相应的题目查看题目细节,其答案会在紧接着的后一篇中出现  剑指offer系列  始 剑指offer—灯管问题(1)  剑指offer—10人电梯(2)  ...

  7. 【剑指Offer】按之字形顺序打印二叉树 解题报告(Python)

    [剑指Offer]按之字形顺序打印二叉树 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  8. 7、斐波那契数列、跳台阶、变态跳台阶、矩形覆盖------------>剑指offer系列

    题目:斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). f(n) = f(n-1) + f(n-2) 基本思路 这道题在剑指offe ...

  9. 剑指offer-面试题58_1-翻转单词顺序-字符串

    /* 题目: 输入一个英文句子,翻转单词顺序,但单词内部顺序不变. */ /* 思路: 先翻转整个句子,再将每个单词分别翻转一次. */ #include<iostream> #inclu ...

随机推荐

  1. 机器学习技法-决策树和CART分类回归树构建算法

    课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增 ...

  2. USB 描述符

    标准的USB设备有5种USB描述符:设备描述符,配置描述符,字符串描述符,接口描述符,端点描述符. // Standard Device Descriptor typedef struct { u8 ...

  3. Python 新手常犯错误(第一部分)

    转载自:http://blog.jobbole.com/42706/ 在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言.渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所 ...

  4. hdu 5902 Seam Carving

    水题,直接上代码了 #include<cstdio> #include<cstring> #include<iostream> #include<cmath& ...

  5. 111. Minimum Depth of Binary Tree

    Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...

  6. 记录几种有关libsvm格式数据的list和dict用法

    # list元素求和 sum = reduce(lambda x,y: x+y, mylist) # 比较两个 lists 的元素是否完全一致 if all(x==y for x, y in zip( ...

  7. js 如何判断页面里的某个值改变

    程序未改变变量的值前新增全局变量:var oldDivValue = document.getElementById("divid").innerHTML; 程序在改变变量值后执行 ...

  8. 作业6 NABCD模型分析,产品Backlog

    1.N(Need 需求): 随着生活水平的提高,每个家庭中都会有电脑和移动设备,可以更加快捷方便使用软件.以前孩子练习计算能力需要通做习题卷或老师出题目来进行,但现在只要通过这个四则运算的程序,可以自 ...

  9. UVa 572 油田(DFS求连通块)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. Android——不同activity之间数据传递

    /* * 不同activity之间数据的传递 */ public class MainActivity extends Activity { private EditText et_name; @Ov ...