面试题5:替换空格

【C语言刷题】牛客网刷题——替换空格 用C语言刷题——替换空格 阅读详情

题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
1.从前到后复制需要创建新的辅助字符串,增加空间复杂度。
2.不创建辅助字符串,从前到后扫描字符串在空格处替换为”%20”三个字符,需要移动空格后的部分字符串,并且每次遇见空格都需要移动后面所有的字符。每次移动时间复杂度为O(n),n个空格时间复杂度为O(n^2)。
3.空格替换为”%20”,字符串长度增加。因此考虑扩大字符串长度,从后向前复制,每个字符只复制一次。
这里写图片描述
遍历字符串找到空格个数,空格替换为”%20”字符从1变为3,每个空格增加2个字符,因此字符串总长增加2*空格个数。
p1为原字符串末位,p2为扩大后的字符串末位。
p1向前遍历,字符不是空格则将字符复制到p2处,p2向前移动;若p1的字符是空格则p1向前移1位,p2向前移3位同时插入”%20”。
这里写图片描述
测试用例:
输入字符串指针是否为空,字符串长度是否大于1
算法复杂度:
时间复杂度:O(n)
空间复杂度:O(1)

void replaceSpace(char *str,int length) {
        if(str==NULL||length<2)
            cout<<"input wrong";
        int num=0;
        for(int i=0;i<length-1;i++){
            if(str[i]==' ')
                num++;
        }
        int new_length=length+num*2;
        int j=new_length=length+num*2-1;
        for(int i=length-1;i>=0;i--){
            if(str[i]!=' '){
                str[j]=str[i];
                j--;
            }
            else{
                str[j]='0';
                str[j-1]='2';
                str[j-2]='%';
                j=j-3;
            }
        }
    }
Python 实现 傅里叶级数 对 函数拟合 并绘图 好记性不如烂笔头 目录傅里叶级数变换原理代码实现效果图 傅里叶级数变换原理 原理:待续… 傅里叶级数变换公式: 代码实现 本次实现的是符号函数的拟合: 注:若要实现其他函数的拟合,修改程序中 fx 的表达式即可 """ 傅里叶级数""" import sympy as sym import numpy as np import matplotlib.pyplot as plt N = 8 # 拟合的阶数 L = sym.pi # 周期的一半 n, x = sym.symbols('n x') 阅读详情

相关推荐

STM32/GD32以太网开发避坑指南:ZLG EPORTM模块调试实战(含YT8512H配置)

本文针对STM32/GD32平台使用ZLG EPORTM模块进行以太网开发时遇到的常见问题,提供了详细的调试实战指南。重点解析了从传统PHY驱动迁移到YT8512H芯片的核心步骤,包括软件复位延时、RMII时钟配置等关键陷阱,并分享了LWIP集成与稳定性验证的实用经验,帮助开发者高效避坑。

rice5的博客 1159

实现一个函数,将一个字符串中的空格替换

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。一开始我拿到这个问题我感觉很简单,我想着直接使用java提供的函数解决这个问题。并且成功通过;String str2 = str.toString(); return str2.replace(" ","%20"); 但是如果需要使用的方...

疯狂的1024 1382

Reactor 响应式编程(第一篇:Reactor核心)

响应式:响应式编程: 全异步、消息、事件回调默认还是用当前线程,生成整个流、发布流、流操作.log();//只要不指定线程池,默认发布者用的线程就是订阅者的线程;

moments的博客 1571

05_ReplaceSpaces(空格替换)

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路:首先查找空格的个数,由此算出新的字符串的空间,然后最最后开始替换,当两个指针相等时说明空格以及替换完了。#include&lt;iostream&gt; using namespace std; class Solution {...

Alatebloomer的博客 964

万达电影 com.wandafilm.app headers check

万达电影 安卓逆向 抓包 逆向 check

weixin_43786514的博客 1436

Moodle平台题库建设技术

Moodle平台题库建设技术简述1新的改变1功能快捷键1合理的创建标题,有助于目录的生成1如何改变文本的样式1插入链接与图片1如何插入一段漂亮的代码片1生成一个适合你的列表1创建一个表格1设定内容居中、居左、居右1SmartyPants1创建一个自定义列表1如何创建一个注脚注释也是必不可少的1KaTeX数学公式1新的甘特图功能,丰富你的文章1UML 图表1FLowchart流程图1导出与导入导出1...

lxf78的博客 4533

剑指offer之面试题5:替换空格

1、题目 2、解题思路

叶强的博客 989

AUTO-DL平台快速部署BEVFormer:Nuscenes数据集完整训练避坑指南

本文详细介绍了在AUTO-DL平台高效部署BEVFormer模型并利用Nuscenes数据集进行完整训练的实战指南。重点解析了平台数据管理、环境配置、数据集迁移解压、预处理及训练启动等全流程中的关键步骤与常见避坑技巧,帮助研究者和工程师快速复现这一前沿视觉感知模型,节省云端训练时间与成本。

weixin_29188043的博客 330

面试题5:替换空格

替换空格题目描述 题目描述 将字符串空格替换成"%20" void ReplaceBlank(char string[], int length) { if(string == nullptr || length<=0) return; //length 为string容量 int count = 0, finalength = 0, strlength=0; ...

一只咸鱼的小努力 106

【OpenAirInterface知识-3】OAI端到端部署之5G基站部署

在上一篇文章中已经完成了5G核心网的部署,本篇文章将介绍OAI 5G基站的部署过程。

起名字难上难的博客 3421

新手福利!大龙虾OpenClaw可视化管理工具来了!告别命令行,这个可视化工具让OpenClaw管理变得超简单

还在用命令行管理OpenClaw?🚀 这个跨平台可视化工具支持14+AI模型,一键切换,还能对接微信飞书钉钉等8大消息渠道,让AI助手管理变得简单直观 ✅ 暗色主题护眼舒适,Rust后端高性能低占用,新手也能轻松上手 🎯

XiaoqiangClub的博客 760
上一篇: C++知识点8:字符串
下一篇: 编写cmake
有多少个小土豆
博客等级 码龄10年 235粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值