首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字符串面试题(二)— 间隔字符串逆序

字符串面试题(二)— 间隔字符串逆序

作者头像
大黄大黄大黄
发布2018-09-14 17:57:39
8830
发布2018-09-14 17:57:39
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/54783435

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串A和它的长度,请返回逆序后的字符串。

例子: “dog loves pig”

输出: “pig loves dog”


示例代码:

#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Reverse {
public:
    string reverseSentence(string A, int n) 
    {
        reverseWord(A,0,n-1);
        int i=0,j=0;
        while(i<n)
        {
            while(i<n&&A[i]==' ')
                i++;
            if(i>=n)
                return A;
            j=i;
            while(i<n&&A[i]!=' ')
                i++;
            if(i>=n)
            {
                reverseWord(A,j,n-1);
                return A;
            }
            reverseWord(A,j,i-1);
        }
        return A;

    }
    void reverseWord(string &A,int low,int high)
    //局部逆序函数
    {
        if(low>=high)
            return;
        char temp;
        while(low<high)
        {
            temp=A[low];
            A[low]=A[high];
            A[high]=temp;
            low++;
            high--;
        }
    }
};
int main()
{
    string arr("dog loves pig");
    Reverse a;
    a.reverseSentence(arr,13);
    cout<<arr;
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年01月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档