剑指Offer之面试题4:替换空格

C++版 - 剑指offer 面试题4: 替换空格 题解 面试题4:替换空格 参与人数:10327 时间限制:1秒 空间限制:32768K 本题知识点:字符串 题目描述 请实现一个函数void replaceSpace(char *str,int length),将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析: 阅读详情

所有代码均通过G++编译器测试,仅为练手纪录。


//面试题4:替换空格

//题目:请实现一个函数,把字符串中的每个空格替换成“%20”.

//    例如输入“We are happy.”,则输出“We%20are%20happy.”


//面试题4:替换空格
//题目:请实现一个函数,把字符串中的每个空格替换成“%20”.
//     例如输入“We are happy.”,则输出“We%20are%20happy.”
void Replace(string& strBuff,char cSrc,const string& strDst)
{
    
    const char *pBuff = strBuff.c_str();
    unsigned long nBuffSize = strBuff.size();
    
    int nSrcCount = 0;
    while (nBuffSize--)
    {
        if(cSrc == pBuff[nBuffSize])
        {
            ++nSrcCount;
        }
    }
    
    if(nSrcCount > 0)
    {
        nBuffSize = strBuff.size();
        unsigned long nNewBuffSize = nBuffSize + (strDst.size()-1)*nSrcCount;
        strBuff.resize(nNewBuffSize);
        
        char *p = const_cast<char *>(strBuff.c_str());
        
        const char *pDst = strDst.c_str();
        unsigned long nDstSize = strDst.size();
        
        --nNewBuffSize;
        while(nBuffSize--)
        {
            if(cSrc == p[nBuffSize])
            {
                unsigned long nDstIndex = nDstSize - 1;
                
                while(nDstIndex+1)
                {
                    p[nNewBuffSize--] = pDst[nDstIndex--];
                }
            }
            else
            {
                p[nNewBuffSize--] = p[nBuffSize];
                
            }
            
        }
    }
}

void TestReplace()
{
    string strBuff = " We are happy.   ";
    Replace(strBuff, ' ',"%20");
    LogInfo("strBuff:%s",strBuff.c_str());
}

ZhaiPillary

2016-12-23



MacOS上如何修改jupyter book的默认打开地址以及如何复制文件路径 记点笔记,才换新系统小半年,还是不太熟悉,所以记录一下笔记,感觉之后也会用到,希望能帮到你们。主要内容是:修改jupyter的默认地址以及复制文件路径。 阅读详情

相关推荐

电力系统设计实战:如何用ETAP绘制一次接线图并优化供电方案

本文详细介绍了如何使用ETAP软件进行电力系统一次接线图的绘制与供电方案优化。从基础环境配置到主接线拓扑构建,再到典型接线方式的对比分析与智能优化,为工业与民用电力系统设计提供实用指南。通过ETAP的可靠性分析和动态仿真功能,帮助工程师选择最优供电方案,提升系统可靠性和运维效率。

weixin_29250573的博客 205

【Python】剑指offer-面试题4

题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ''' 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是...

hushaoqiqimingxing的博客 256

DDR Study - LPDDR5 Power-Up and Initialization Sequence

本文深入解析LPDDR5内存的上电初始化流程,涵盖电源斜坡、复位信号释放和初始化训练等关键阶段。通过实际案例分享,详细探讨了电源轨时序、RESET信号处理、ZQ校准和CA总线训练等核心技术要点,帮助硬件工程师规避常见设计陷阱,确保DDR内存稳定运行。

weixin_42523792的博客 299

剑指offer面试题4:二维数组中的查找(java版已在牛客网AC)

题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行。每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false. 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 解题思...

慕柏的博客 602

【UG/NX二次开发】记录在二次开发中遇到的坑

【UG/NX二次开发】记录在二次开发中遇到的坑

Trust_MJ的博客 2707

Zabbix 简介、优缺点、基础原理

(8条消息) Zabbix 的基础概念、原理和架构_Lee木木的博客-优快云博客_zabbix架构类型Zabbix 的基础概念、原理和架构_Lee木木的博客-优快云博客_zabbix架构类型 --------------------------------------------------------------------------------------------------------------------------- 一、Zabbix 简介 Zabbix是由A...

weixin_50196615的博客 2037

剑指offer面试题4

剑指offer面试题4:二维数组中的查找 题目描述:在一个二维数组中,每一行都按照从左向右递增,每一列从上到下递增的顺序排列。输入一个这样的二维数组和一个整数,并判断数组中是否含有该整数。 例如: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 如果查找的数字是7,则返回true; 思路: 首先选取数组中右上角的数字,如果该数字正好等于要查找的数字,则查找结束;如果该数...

weixin_44643195的博客 230

PON架构(全光网络)

目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网 无线网 全光网络方案场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网) 单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用1

qq_56248592的博客 6268

剑指Offer面试题(第三天)面试题4、5

面试4:二维数组中的查找 ** 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 ** 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该函数。 package Test; import java.util.Scanner; public class No4find { public static v...

weixin_43137176的博客 384

【知识图谱】neo4j安装与配置_社区版_2025(附完整安装软件包)

(经历过各种版本NEO4J,遇见杂七杂八的各种问题,也看过非常多很好的教程,特此来分享一下,为大家排排坑。

知识靠谱的博客 2万+

Qt —— 调用海康C++版SDK获取摄像头每帧图像,通过OpenCv处理每帧图像后显示在Qt窗口(附:源码)

  关注 笔者 - jxd 微信公众号搜索 “码农总动员” 或 微信扫描下方二维码,了解更多你不知道的XX,O(∩_∩)O

5447

【剑指offer第二版】面试题4

转载自https://blog.youkuaiyun.com/weixin_37672169/article/details/79979484 问题描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 ...

春卷同学的博客 339

海外购物商城源码 带即时通讯IM源码

在海外购物商城中,即时通讯IM源码可以为用户提供更便捷、高效的沟通方式,帮助解决跨国交易中的语言和文化差异问题。总之,即时通讯IM源码在海外购物商城中扮演着重要的角色,可以为用户提供更方便、高效的沟通方式,解决跨国交易中的语言和文化差异问题。(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买)实时翻译:即时通讯IM源码提供实时翻译功能,能够快速准确地翻译不同语言之间的文字、语音、视频等信息,帮助用户克服语言障碍。

很酷的站长的博客 259

《剑指Offer》面试题4:替换空格

《剑指Offer》 P44面试题4:替换空格题目:

(●—●) 476

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【一刷《剑指Offer》】面试题 4:替换空格

因为是 ' ' -> "%20",是 1 换 3,所以可以先统计原字符串中空格的个数(设为 n),然后可以计算出新字符串的长度。C 库函数中内存拷贝 memmove() 函数与此题有共同点,函数功能就是:将起始地址 src 且长度为 count 的内存拷贝到起始地址 dst 处,并返回 dst,返回是为了实现链式表达式。合并两个数字(包括字符串)时,如果从前往后复制每个数字(或字符)需要重复移动数字(或字符)多次,那么我们可以考虑从后往前复制,这样就能减少移动的次数,从而提高效率。

Elena's Blog 574

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

剑指offer面试题4:替换空格

题目:替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy",则输出”We%20are%20happy 思路:思路: 看到这个问题,我们通常的思路是从前向后遍历字符串,每遇到一个空格将空格之后的字符向后移动两位,然后将将“%20”插进去,假设字符串长度为n,有n个空格,对于每个空格,需要移动后面的字符的时间复杂度为o(n),则对于n个空格时间复杂度为...

GuYuyuyuyu的博客 224

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【剑指Offer】面试题4:替换空格

一:题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy 二:解题思路 三:代码实现

曦曦慕慕的专栏 396

【剑指Offer学习】【面试题4 : 替换空格】

请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。

https://github.com/Wang-Jun-Chao 1万+

《剑指offer》面试题4:替换空格

面试题4:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如输入"We are happy.",则输出"we%20are%20happy"。   在网络编程中,如果URL参数中含有特殊字符,如空格、#等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在%后面跟上ASCI1码的两位十六进制的表示。比如空格的ASCI码是...

专注于C/C++/Linux领域创作 387

剑指Offer——面试题4:替换空格

书中思路: public String replaceSpace(String str1) { if (str == null) { return null; } StringBuffer str = new StringBuffer(str1); int length = s...

日有寸进 226

剑指Offer面试题:4.替换空格

一、题目 请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。 二、思路 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),因此当遍历到一个空格时,需要在尾部填充两个任意字符。 令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和 P2...

小强博客 572

剑指offer——面试题4:替换空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy     代码: class Solution { public: // length 为字符数组的总容量 void replaceSpace(char *str,int length) { if(str ==

denghe优快云的博客 470

[剑指offer]面试题4:替换空格

面试题4:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。 ❖ 时间复杂度为O(n2)的解法,不足以拿到Offer 最直观的做法是从头到尾扫描字符串,每一次碰到空格字符的时候做替换。由于是把1个字符替换成3个字符,我们必须要把空格后面所有的字符都后移两个字节,否则就有两个字符被覆盖了。 代码如下: #include <iostream> using namespace std; //le

m0_51955470的博客 235

剑指Offer:面试题4 替换空格

/* 替换空格: 请事先一个函数,把字符串中的每个空格替换成"%20"。例如 输入: We are happy. MaChao 输出: We%20are%20happy. MaChao */ /* 关键: 1 第一次遍历字符串统计空格数,计算新的字符串长度 2 采用p1指向原来结尾,p2直线新结尾,然后不遇见空格时,依次复制,   遇见空格,p1不动,p2连减三次,每次

qingyuanluofeng的专栏 706

剑指Offer面试题4:替换空格 Java实现

题目:请实现一个函数,把字符串中的每个空格替换成“20%”。例如,输入“we are so happy”则输出:“we20%are20%so20%happy”。 算法分析: 算法1:时间复杂度为O(n^2)的解法 现在我们考虑怎么做替换操作。最直观的做法是从头到尾扫描字符串,每一次碰到空格字符的时候做替换。由于是把1个字符替换称3个字符,我们必须把空格后面的所有的字符

做一名努力的通信程序员 974

《剑指offer》【面试题4:替换空格】

面试题4:替换空格字符串:一种基本的数据结构,是由若干字符组成的序列。注意的是每个字符串都以"\0"作为结尾,这样当我们在使用字符串的时候,也可以作为一个字符串的结尾标志。但是也是因为"\0"这个字符使得稍不留心就会造成字符串的越界,这也算是字符串的一个考点,或者认为是和数组的比较吧。存储:把常量字符串放到单独的一个内存区域,当几个指针赋值给相同的常量字符串的时候,实际上这几个指针指向的是一块相同...

IT_model的博客 1947
上一篇: 剑指Offer之面试题3:二维数组中的查找
下一篇: 剑指Offer之面试题5:从尾到头打印链表
沐寒握冰
博客等级 码龄14年 57粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值