替换空格

题目描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

 

时间复杂度o(n)的算法

先遍历一次字符串统计出空格的总数,计算出替换之后的字符串的总长度。每替换一个空格,长度增加2,因此替换以后字符串的长度等于原来的长度加上2乘以空格数目。考虑从字符串的后面开始复制和替换。设置两个指针,P1和P2。P1指向原始字符串的末尾,而P2指向替换之后的字符串的末尾。向前移动指针P1,逐个把它指向的字符复制到P2指向的位置,直到碰到第一个空格为止

 

 

 

 1 int replace_blank(char a[])
 2 {
 3     if( a == null )
 4     {
 5         printf("exception\n");
 6         return ;
 7     }
 8     // 计算字符串实际长度,空格长度,替换后的字符串长度
 9     int len_a=0;
10     int len_b=0;
11     int len_c=0;
12     int i=0;
13     while( a[i] != 0 )
14     {
15         ++len_a;
16         if( a[i] == ' ' )
17             ++len_b;
18         
19         ++i;
20     }
21     len_c=len_a+2*len_b;
22     int p1=len_a;
23     int p2=len_b;
24     // p1!=p2
25     while( p1 >= 0 && p2 > p1 )
26     {
27         if(a[p1]==' ')
28         {    
29             a[p2--]='0';
30             a[p2--]='2';
31             a[p2--]='%';
32         }
33         else
34         {
35             a[p2--]=a[p1];
36         }
37         p1--;
38     }
39                 return ;
40 }

 

转载于:https://www.cnblogs.com/beautyshell/p/3198585.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备份数据 宝塔linux_宝塔面板旧版本升级教程汇总—升级宝塔面板

往期教程:宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解宝塔面板教程(2)宝塔面板添加WordPress站点详细图文教程宝塔面板教程(3)基于宝塔面板成功配置网站SSL安全证书宝塔面板教程&…

执行全文索引时出现权限不足的解决方法

在Oracle中,SYS用户是整个数据库的所有者,SYS拥有数据库中几乎所有的权限。今天我们就来介绍一下使用SYS执行全文索引的建立时,出现了权限不足的错误。   许多人刚刚接触Oracle时,对于权限并不是很了解,…

Swift面向对象基础(上)——Swift中的类和结构体(下)

学习来自《极客学院》1 import Foundation2 3 class User {4 var name:String5 var age:Int6 init(name:String,age:Int){7 self.age age8 self.name name9 } 10 } 11 var u1 User(name:"何杨",age:23) 12 var u2 User(name:&qu…

ultraedit26 运行的是试用模式_如何并行运行你的自动化测试?

点击上方蓝色字关注我们~在自动化测试过程中的某些时刻,你将遇到一个共同的问题,那就是:需要花费很长时间去执行大量的UI自动化测试用例。最为有效地加速用例执行的方式就是并行地运行自动化测试。不幸地是,使各个自动化测试用例并…

js实现IE/Firefox的收藏功能

代码: function addFavorite(el){var url window.location.href,title $(head).find(title).html();try{//IEwindow.external.AddFavorite(url, title);}catch(e){ //Firefoxtry{window.sidebar.addPanel(title,url,);}catch(e){if(window.opera){ //operael.hre…

最小点割集

prim算法不仅仅可以求最小生成树,也可以求“最大生成树”。最小割集Stoer-Wagner算法就是典型的应用实例。 求解最小割集普遍采用Stoer-Wagner算法,不提供此算法证明和代码,只提供算法思路: 1.minMAXINT,固定一个顶点P…

问题:从键盘读取特定类型的数据(使用Scanner读取int类型)

import java.util.Scanner; public class ScannerIntTest{public static void main(String [] args){int num1,num2;num1 getIntNumber();//调用函数getIntNumber()来获取一个从键盘输入的整数num2 getIntNumber();System.out.println("first number "num1"-…

在统计学中参数的含义是指_期刊论文中科研统计学缺陷分析及解决路径

中华医学科研管理杂志, 2018,31(5) 张策, 陈淑良, 王晓桐, 等摘要目的从期刊论文统计方法缺陷方面进行分析,并提出解决方案。方法资料采用中国知网文献数据库中的"基础科学"及"医药卫生科技"数据库的全部文献作为抽样源,限定时间为…

SPOJ 962 Intergalactic Map (从A到B再到C的路线)

【题意】在一个无向图中&#xff0c;一个人要从A点赶往B点&#xff0c;之后再赶往C点&#xff0c;且要求中途不能多次经过同一个点。问是否存在这样的路线。&#xff08;3 < N < 30011, 1 < M < 50011&#xff09; 【思路】很巧的一道题&#xff0c;一般我们都是把…

【转载】在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库

在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库 SQLDMO(SQL Distributed Management Objects&#xff0c;SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口&#xff0c;所以它可以执行很多…

雨棚板弹性法计算简图_钢结构工程量计算、报价要点

第一部分图纸一、图纸&#xff1a;根据图纸目录&#xff0c;清理核对图纸数量&#xff0c;检查是否有遗漏。二、建筑施工图1. 设计总说明&#xff08;1&#xff09; 建筑面积、结构形式、柱距、跨度、结构布置情况&#xff1b;&#xff08;2&#xff09; 工程量计算的范围&…

ubuntu制作usb启动盘

准备&#xff1a; u盘iso镜像文件--ubuntu-12.04.2-desktop-amd64.iso烧盘软件--unetbootin-linux-583步骤&#xff1a; 格式化u盘 查看u盘信息 #mount/dev/sdb1 on /media/KINGSTON type vfat (rw,nosuid,nodev,uid1000,gid1000,shortnamemixed,dmask0077,utf81,showexec,flus…

HDU1907 ZJU3113

/* 有SJ 定理&#xff1a;对于任意的一个 Anti-SG 游戏&#xff0c;如果我们规定当局面中所有单一游戏的 SG 值为 0 时游戏 结束&#xff0c;则先手必胜当且仅当以下两个条件满足任意一个&#xff1a; (1)游戏的 SG 函数不为 0&#xff0c;且游戏中某个单一游戏的 SG 函数大于1…

十分钟理解线性代数的本质_数学对于编程来说到底有多重要?来看看编程大佬眼里的线性代数!...

本文提出了一种观点&#xff1a;从应用的角度&#xff0c;我们可以把线性代数视为一门特定领域的程序语言。我们一起来看看&#xff01;文章有点偏理论讨论&#xff0c;可能比较枯燥&#xff0c;对于一名程序员&#xff0c;你如果看下去&#xff0c;你将会有不一样的收获&#…

oh-my-zsh upgrade problem

Oh-My-ZSH upgrade issue with bad substitution message Any problem with automatic Oh-My-Zsh upgrade? Last login: Mon May 13 13:57:50 2013 from ifusio.com [Oh My Zsh] Would you like to check for updates? Type Y to update oh-my-zsh: y /home/thomas/.oh-my-zs…

u-boot-2011.06-rc2移植到mini2440开发板(一)

一、移植环境 u-boot版本&#xff1a;u-boot-2011.06-rc2 Linux版本&#xff1a;Ubuntu 11.04 交叉编译工具&#xff1a;arm-linux-gcc-4.3.2(友善之臂) 开发板&#xff1a;友善之臂mimi2440 CPU:s3c2440 SDRAM:64MB Nor Flash:2MB Nand Flash:128MB 网卡&#xff1a;DM9000 二…

Linux Socket学习--套接口的类型和协议

我们首先来说一下PF_INET和AF_INET&#xff0c;虽然标准提倡在指定demain参数的时候&#xff0c;优先使用PF_INET&#xff0c;但是大量已经编写的c代码遵循旧的协议。目前情况是AF_UNIXPF_UNIX&#xff0c;AF_INETPF_INET。但是将来是不是这样不好说啊。 不同于socketpari函数的…

8266串口调试助手_200行Python代码实现串口调试助手(2) 界面构建

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是串口调试工具pzh-py-com诞生之界面构建。一个软件的UI界面是非常重要的&#xff0c;这是软件与用户交互的接口&#xff0c;软件功能即使再强大&#xff0c;但如果没有清晰的UI界面&#…

权限访问控制设计

一、前言 之前的博客一直都还没写到框架的实现及权限系统&#xff0c;今天开始写我的权限系统&#xff0c;我以前做过的项目基本上都有权限管理这个模块&#xff0c;但各个系统都会有一些不太一样&#xff0c;有些简单点&#xff0c;有些稍微复杂一点&#xff0c;一句话&#x…

关于页面布局的一些注意点

1、在div布局不好解决的地方不用犹豫&#xff0c;使用table&#xff01; 2、div使用百分比大小时如果其又受其他元素的固定高宽影响的话overflow无效&#xff0c;加入position:absolute即可解决 3、当有dtd头存在时height的百分比单位不起…