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

 package com.exe9.offer;

 /**
* 【题目】“I am a student.”》》》“.tneduts a ma I”。>>student. a am I
* @author WGS
*
*/
public class ReverseWordsInSentence {
public void Reverse(char[] str,int begin,int end){
if(str==null || str.length<=0) return ;
while(begin<=end){
char temp=str[begin];
str[begin]=str[end];
str[end]=temp;
begin++;
end--;
} } public String getReverseSentence(String str){
if(str==null || str.length()<=0) return str;
char[] charStr=str.toCharArray();
//1 先反转整个句子
int len=charStr.length;
int begin=0;
int end=len-1;
Reverse(charStr,begin,end);//.tneduts a ma I
begin=end=0; //2 反转每个单词
while(begin<len){
//如果开始就是空格 则为无效字符
if(charStr[begin]==' '){
begin++;
end++;
}else if(end==len || charStr[end]==' ' ){//当end达到最后一位或者遇到空格,就表示一个单词的结束,就开始反转此单词
Reverse(charStr,begin,--end);
begin=++end;
}else{
end++;
}
}
return new String(charStr); } public static void main(String[] args) {
ReverseWordsInSentence revese=new ReverseWordsInSentence();
String str=revese.getReverseSentence("I am a student.");
System.out.println(str); } }

剑指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. 【转】ChainMapper 实例理解一

    通过ChainMapper可以将多个map类合并成一个map任务. 下面个这个例子没什么实际意思,但是很好的演示了ChainMapper的作用. 源文件100 tom 90101 mary 85102 ...

  2. 【转】java 注释规范

    原则: 1.注释形式统一 在整个应用程序中,使用具有一致的标点和结构的样式来构造注释.如果在其它项目中发现它们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的规范系统中引入新的规范. 2 ...

  3. 单元测试-代码覆盖率工具 -- JaCoCo

    最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. 随着敏捷开发的流行,编写单元测试已经成为业界共识.但如何来衡量单元测试的质量呢?有些管理者片面追求单元 ...

  4. jquery easyui datebox 时间控件默认显示当前日期的实现方法

    jquery easyui datebox 时间控件默认显示当前日期的实现方法 直接class easyui-datebox后添加一个value="true"就可以

  5. 解决MySQL中【Cannot load from mysql.proc. The table is probably corrupted

    [错误过程]:MySQL从5.1升级至5.5后在调用存储过程时报出“Cannot load from mysql.proc. The table is probably corrupted.” [造成 ...

  6. 让Grub 2来拯救你的 bootloader

    没有什么事情比 bootloader 坏掉更气人的了,充分发挥 Grub 2 的作用,让 bootloader 安分工作吧.为什么这么说? Grub 2 是最受欢迎的 bootloader ,几乎用在 ...

  7. AndrdoidStudio 2个jar包引起的异常Duplicate files copied in APK META-INF/LICENSE.txt

    在build.gradle中与compileSdkVersion **.buildToolsVersion “**.**.*"或defaultConfig 同级添加如下代码 packagin ...

  8. yum命令

    1)查询 yum   list #查询所有可用软件包列表 yum search 关键字  #搜索服务器上和关键字相关的包 #对比rpm的查询:rpm  -qa | grep xxx 2)安装 yum ...

  9. Unix Linux 编程书籍

    UNIX环境高级编程(第3版) Advanced Programming in the UNIX Environment Linux/UNIX系统编程手册 Linux/UNIX系统编程手册 (豆瓣) ...

  10. pdo的工作方式与查错

    pdo某些方法如prepare()会返回PDOStatement对象; 然后需要通过返回的PDOStatement对象的方法操作 当查错通过$pdo->errInfo()方法可能查不出错误信息 ...