原创博文,转载请注明出处!

本题牛客网地址

本题代码的github地址

本系列文章的索引地址

# 题目

# 思路

      两次翻转,第一次翻转整个句子,第二次翻转每个单词(单词之间用逗号隔开)

# 代码

#include <iostream>
#include <string>
using namespace std; class Solution {
public:
string ReverseSentence(string str)
{
// 特殊输入
int len=str.length();
if(len==0) return ""; // 使用翻转函数翻转整个句子
Reverse(str,0,len-1);
cout<<"句子翻转"<<endl;
cout<<str<<endl;
        // 寻找单词并使用翻转内函数翻转单词
int i=0;//辅助变量
int j=0;//辅助变量 while(i<len)
{
// 寻找单词开头
if(str[i]==' ')
{
i++;
j++;
} // 寻找单词结尾
if(str[j]!=' ' && str[j]!='\0')
{
j++;
}
else
{
Reverse(str,i,--j);
i=++j;
}
cout<<"i="<<i<<endl;
cout<<"j="<<j<<endl;
cout<<str<<endl;
}
return str;
} // 翻转函数
void Reverse(string &str,int pstart,int pend)
{
while(pstart < pend)
{
char temp=str[pstart];
str[pstart]=str[pend];
str[pend]=temp; pstart++;
pend--;
}
}
};
int main()
{
string str = "I am a student.";
Solution solution;
solution.ReverseSentence(str);
return 0;
}

【剑指offer】翻转单词顺序,C++实现的更多相关文章

  1. 剑指offer——翻转单词顺序VS左旋转字符串

    字符串的交换等,注意判断字符串的是否为NULL,以及判断边界等. #include <iostream> #include <string> using namespace s ...

  2. 剑指Offer——翻转单词顺序列

    题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“studen ...

  3. 剑指OFFER——调整数组顺序使奇数位于偶数前面

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 剑指offer书里的版本, ...

  4. 剑指Offer-44.翻转单词顺序列(C++/Java)

    题目: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“student. ...

  5. 剑指offer--40.翻转单词顺序列

    时间限制:1秒 空间限制:32768K 热度指数:276854 本题知识点: 字符串 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写 ...

  6. 剑指Offer-翻转单词顺序

    题目描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符串的顺序不变.例如输入字符串:"I am a student",则输出"student a am I&qu ...

  7. 剑指Offer 调整数组顺序使奇数位于偶数前面

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.     思路: ...

  8. 剑指Offer41 反转单词顺序,单词字符顺序不变

    /************************************************************************* > File Name: 41_Revers ...

  9. 用js刷剑指offer(调整数组顺序使奇数位于偶数前面)

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 牛客网链接 js代码 ...

  10. 剑指offer 调整数组顺序使得奇数位于偶数前面

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Solution { public:     void  ...

随机推荐

  1. Linux用户及权限分配

    一.用户分类 所有者 u; 所属组 g; 其它用户 o; 所有用户 a; 二.用户管理 //查看用户 id user //添加用户 useradd user //设置密码 passwd user // ...

  2. linux一键安装php脚本

    #!/bin/sh echo "----------------------------------start install php --------------------------- ...

  3. 使用 Python 连接 Caché 数据库

    有不少医院的 HIS 系统用的是 Caché 数据库,比如北京协和医院.四川大学华西医院等.用过 Caché 开发的都知道,Caché 数据库的开发维护同我们常见的关系型数据库有很大差别,如 SQL ...

  4. SPSS t 检验

    在针对连续变量的统计推断方法中,最常用的是 t 检验和方差分析两种. t 检验,又称 student t 检验,主要用于样本含量较小(例如n<30),总体标准差未知的正态分布资料.它是用 t 分 ...

  5. Google Java编程风格指南中文版(转)

    作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...

  6. webstorm自动换行

    1.文件 — — 设置 2. 编辑器 — — 编辑器 — — 在编辑窗口使用软换行(勾选)

  7. 高质量的C++博客

    陈硕  :http://blog.csdn.net/Solstice 孟岩: http://blog.csdn.net/myan

  8. 在Web API 2 中实现带JSON的Patch请求

    译文:http://www.cnblogs.com/kexxxfeng/p/the-patch-verb-in-web-api-2-with-json.html 原文:https://carly.io ...

  9. javascript中对变量类型的判断

    本文正式地址:http://www.xiabingbao.com/javascript/2015/07/04/javascript-type 在JavaScript中,有5种基本数据类型和1种复杂数据 ...

  10. ItemsControl的ItemContainerStyle属性

    ItemsControl:ListBox,ComboBox,TreeView ItemContainerStyle是用来设置每一个集合控件的Item的样式的属性(即设置每一个项的样式).   使用It ...