字符串反转

简介:
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

/*
//解法一:
//时间复杂度为:O(K * N),
//空间复杂度: O(1)
char * Reverse(char *pStr, int len,  int size)
{
    len = len % size;//if len > size, it will be a recyle
    for (int i = size-1; i >= len; i--)
    {
        char tmp = pStr[size-1];
        for (int j = size-1; j >= 1; j--)
        {
            pStr[j] = pStr[j-1];
        }
        pStr[0] = tmp;
       // puts(pStr);
    }
    return pStr;
}
*/


//解法二:
//设src = "1234abc", dest = "abc1234"
//T = "1234", D = "abc"
//则 (T^D^)^ = DT

inline void Swap(char &lps, char &rps)
{
    char tmp = lps;
    lps = rps;
    rps = tmp;
}

void Reverse(char *pSrc, int pos, int size)
{
    char *pBegin = pSrc + pos,
         *pEnd = pSrc +  size- 1;

    while (pBegin < pEnd)
    {
        Swap(*pBegin, *pEnd);
        pBegin ++;
        pEnd --;
    }
    puts(pSrc);
}

int main()
{
    char str[] = "1234abc";
    int len = strlen(str);

    Reverse(str, 0, 4);//反转前4个字符
    Reverse(str, 4, len);//反转后三个字符
    Reverse(str, 0, len);//整体反转

    puts(str);

    return 0;
}

目录
相关文章
|
编解码 iOS开发 开发者
App上架Apple App Store和Google Play流程
App上架Apple App Store和Google Play流程
465 2
|
JavaScript 定位技术
原生 js 实现类 3d 地图大屏展示自动高亮轮播、显示悬浮提示 tootip 的方案:svg + popper.js 定位引擎
原生 js 实现类 3d 地图大屏展示自动高亮轮播、显示悬浮提示 tootip 的方案:svg + popper.js 定位引擎
507 0
原生 js 实现类 3d 地图大屏展示自动高亮轮播、显示悬浮提示 tootip 的方案:svg + popper.js 定位引擎
|
12月前
|
PHP Apache
【ThinkPHP框架教程·Part-04】URL访问模式
本章节介绍 ThinkPHP6.0 的 URL 访问模式,解析其访问方法。ThinkPHP 框架通过 URL 实现多种操作,默认为单应用模式。
【ThinkPHP框架教程·Part-04】URL访问模式
|
存储 大数据 数据库
Android经典面试题之Intent传递数据大小为什么限制是1M?
在 Android 中,使用 Intent 传递数据时存在约 1MB 的大小限制,这是由于 Binder 机制的事务缓冲区限制、Intent 的设计初衷以及内存消耗和性能问题所致。推荐使用文件存储、SharedPreferences、数据库存储或 ContentProvider 等方式传递大数据。
609 0
|
机器学习/深度学习 人工智能 自然语言处理
人工智能技术及其应用:未来的发展趋势
【10月更文挑战第16天】人工智能技术及其应用:未来的发展趋势
|
存储 5G 定位技术
UWB 与蓝牙、FireWire 和 Wi-Fi 的不同之处
【8月更文挑战第24天】
540 0
|
NoSQL Java 应用服务中间件
技术笔记:Profiles简介
技术笔记:Profiles简介
281 0
|
自然语言处理 安全 算法
【Qt 基础 】深入理解Qt:qApp的全面掌握与实践
【Qt 基础 】深入理解Qt:qApp的全面掌握与实践
883 1
|
存储 数据采集 自然语言处理
【项目】Boost搜索引擎
【项目】Boost搜索引擎
405 0