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


    字符串的交换等,注意判断字符串的是否为NULL,以及判断边界等。

    #include <iostream>
    #include <string>
    using namespace std;
    
    void Reverse(char *pBegin,char *pEnd)
    {
        if (pBegin==NULL||pEnd==NULL)
        {
            return;
        }
        while(pBegin<pEnd)
        {
            char temp=*pBegin;
            *pBegin=*pEnd;
            *pEnd=temp;
            pBegin++;
            pEnd--;
        }
    }
    
    char* ReverseSentence(char* pData)
    {
        if (pData==NULL)
        {
            return NULL;
        }
        char *pBegin=pData;
        char *pEnd=pData;
        while(*pEnd!='')
        {
            pEnd++;
        }
        pEnd--;
        Reverse(pBegin,pEnd);
        pBegin=pEnd=pData;
        while (*pBegin!='')
        {
            if (*pBegin==' ')
            {
                pBegin++;
                pEnd++;
            }
            else if (*pEnd==' '||*pEnd=='')
            {
                Reverse(pBegin,--pEnd);
                pBegin=++pEnd;
            }
            else
            {
                pEnd++;
            }
        }
        return pData;
    }
    
    char* LeftRotateString(char *pStr,int n)
    {
        if (pStr==NULL)
        {
            return NULL;
        }
        int nLength=static_cast<int>(strlen(pStr));
        if (nLength>0&&n>0&&n<nLength)
        {
            char* pFirstStart=pStr;
            char* pFirstEnd=pStr+n-1;
            char* pSecondStart=pStr+n;
            char* pSecondEnd=pStr+nLength-1;
            Reverse(pFirstStart,pFirstEnd);
            Reverse(pSecondStart,pSecondEnd);
            Reverse(pFirstStart,pSecondEnd);
        }
        return pStr;
    }
    
    int main()
    {
        char str[]="hello world";
        cout<<ReverseSentence(str)<<endl;
        cout<<LeftRotateString(str,3)<<endl;
        return 0;
    }
  • 相关阅读:
    MySQL的事务用法:
    MySQL基本命令(增删改查,check约束)总结:
    (转)nodejs npm国内镜像
    NodeJS学习笔记(三)
    NodeJS学习笔记(二).js
    minimist的用法
    npm link没有效果的问题
    DOM Based XSS介绍
    NodeJS学习笔记(一)
    用Ruby写自动生成Sql语句脚本遇到的问题
  • 原文地址:https://www.cnblogs.com/dgy5554/p/3973385.html
Copyright © 2020-2023  润新知