【剑指offer】翻转单词顺序,C++实现
原创博文,转载请注明出处!
# 题目

# 思路
两次翻转,第一次翻转整个句子,第二次翻转每个单词(单词之间用逗号隔开)
# 代码
#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++实现的更多相关文章
- 剑指offer——翻转单词顺序VS左旋转字符串
		字符串的交换等,注意判断字符串的是否为NULL,以及判断边界等. #include <iostream> #include <string> using namespace s ... 
- 剑指Offer——翻转单词顺序列
		题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“studen ... 
- 剑指OFFER——调整数组顺序使奇数位于偶数前面
		输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 剑指offer书里的版本, ... 
- 剑指Offer-44.翻转单词顺序列(C++/Java)
		题目: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“student. ... 
- 剑指offer--40.翻转单词顺序列
		时间限制:1秒 空间限制:32768K 热度指数:276854 本题知识点: 字符串 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写 ... 
- 剑指Offer-翻转单词顺序
		题目描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符串的顺序不变.例如输入字符串:"I am a student",则输出"student a am I&qu ... 
- 剑指Offer 调整数组顺序使奇数位于偶数前面
		题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 思路: ... 
- 剑指Offer41 反转单词顺序,单词字符顺序不变
		/************************************************************************* > File Name: 41_Revers ... 
- 用js刷剑指offer(调整数组顺序使奇数位于偶数前面)
		题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 牛客网链接 js代码 ... 
- 剑指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 ... 
随机推荐
- SpringMVC,针对不支持PUT、DELETE提交的游览器处理方式
			在REST服务中必不可少的需要PUT.DELETE提交,但是目前很多的游览器并不支持.所以在使用REST前需要进行一些额外的处理. 具体解决方案如下: 1,先添加一个filter.这个filter就是 ... 
- An Overview of Forms Authentication (C#)
			https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/an-o ... 
- 爬虫之动态HTML处理(Selenium与PhantomJS )动态页面模拟点击
			动态页面模拟点击 #!/usr/bin/env python # -*- coding:utf-8 -*- # python的测试模块 import unittest from selenium im ... 
- window_onload和body_onload
			onload 事件 Event 对象 定义和用法 onload 事件会在页面或图像加载完成后立即发生. 语法 onload="SomeJavaScriptCode" 参数 描述 S ... 
- spring boot 之Rabbitmq 基本配置
			/* * Copyright (c) 2017 4PX Information Technology Co.,Ltd. All rights reserved. */package com.fpx.p ... 
- vue element new vue const
			new Vue{ el:"app", } ========= const app = new Vue({ router, data:{....} }).$mount('#app') ... 
- sina sae搭建wordpress数据库配置
			sina app engine上搭建wordpress,使用快速安装向导会无法连接数据库. 可以在本地修改好 wp-config.php再提交. <?php /** * WordPress 基础 ... 
- C语言调用DIRECT3D的实例代码,通过lpVtbl字段进行
			m_pDirect3D9 = Direct3DCreate9(D3D_SDK_VERSION); int w = 1920; int h = 1080; D3DPRESENT_PARAMETER ... 
- day7-python类反射
			一.概述 一般的高阶语言都有反射的功能特性,python也不例外,网上资料显示,python支持类反射和模块反射,今天就先学习一下类反射的相关知识,模块反射后续再展开把.Python的类反射用于把字符 ... 
- jps、jstack、jmap、jhat、jstat、hprof使用详解
			https://my.oschina.net/feichexia/blog/196575#comment-list A. jps(Java Virtual Machine Process Status ... 
