首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在网络编程中,如果URL参数中含有特殊字符,如空格、“#”等,可能导致服务器端无法获得正确的参数值,需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在“%”后面跟上ASCⅡ码的两位十六进制的表示。比如空格的ASCⅡ码是32,即十六进制的0×20,
在网络编程中,如果URL参数中含有特殊字符,如空格、“#”等,可能导致服务器端无法获得正确的参数值,需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在“%”后面跟上ASCⅡ码的两位十六进制的表示。比如空格的ASCⅡ码是32,即十六进制的0×20,
admin
2017-04-28
76
问题
在网络编程中,如果URL参数中含有特殊字符,如空格、“#”等,可能导致服务器端无法获得正确的参数值,需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在“%”后面跟上ASCⅡ码的两位十六进制的表示。比如空格的ASCⅡ码是32,即十六进制的0×20,因此空格被替换为“%20”。再比如“#”的ASCⅡ码为35,即十六进制的0×23,它在URL中被替换为“%23”。请设计一个时间和空间上尽可能高效的算法,把字符串中的每个空格替换为“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。要求:
说明你所设计算法的时间复杂度和空间复杂度。注:要求考生在原来的字符串上做替换,即字符串后面有足够多的空余内存。
选项
答案
空间复杂度分析:最坏情况下,字符串中有n个空格,而替换后每个空格变成3个字符,其余字符不变。所以,替换后总的字符数不会超过3n个,故空间复杂度为O(n)。 时间复杂度分析:可以把整个算法分成两步:第.步是统计字符串中空格的数目,这一步只需要对整个字符串扫描一次,所以时间复杂度是O(n);第二步是对字符串进行替换。由于知道了空格的个数,因此每个位置的字符就唯一地确定下来了。空间复杂度分析已经证明了替换后的字符串长度是O(n)级别的,所以替换的过程也是O(n)的。而每一步中维护两个指针的代价是O(l)的,所以总的维护代价是O(n),故整个算法的时间复杂度为O(n)。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/JWRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
试述宋代理学产业的社会背景及主要内容。
下列对第三次科技革命推动了国际经济格局调整的叙述,不正确的是()。
二战后期,反法西斯同盟国召开了一系列会议、达成了一系列协议,以解决战后世界的安排问题,这些会议中以()最为重要,所以,我们将二战后的国际关系格局称为()。
古埃及中王国时期出现了一个新兴的手工业部门,对世界文明做出了巨大贡献。这一新兴的手工业部门是()。
近代思想家如何传播西方思想革新中国政治的?
晚清时期清帝年号的正确排序是
阅读下面史料,回答问题:材料一各缔约国主力舰替换总吨位按照标准排水量计算不得超过如下:合众国525000吨;英帝国525000吨;法国175000吨;意大利175000吨;日本315000吨。
在平衡二叉树中的每个结点上增设一个Lsize域,其值为它的左子树中的结点个数加1,试写一个时间复杂度为O(logn)的算法,确定树中第k个结点的位置。
某系统中n个相互独立的生产者进程为一个消费者进程提供数据,假设每个生产者提供的数据写入各不相同的缓冲区,且生产者写缓冲区的速度比消费者读缓冲区的速度快,则缓冲区个数的最优值应为()。
某系统有R1、R2和R3共3种资源,在TO时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况如表4-4所示,此时系统的可用资源向量为(2,1,2)。试问:若已知P1运行过程中的全部资源使用情况按时问先后顺序如下列出:i.P1被创建Ⅱ.申请1
随机试题
三级旋回与()大体相当,其中发育的含油砂岩有一定的连续性,上、下泥岩隔层分布稳定。
高血压心脏病引起的舒张性心衰首选治疗药物是
关于牙髓病和根尖周病的治疗哪一点是错误的
个人汽车贷款贷前调查的方式包括()
导游人员在导游服务过程中既负责检查和督促各接待单位落实合同的责任,又具有将各接待单位的意见和建议反馈给旅行社的义务。这是导游服务在旅游接待服务中的()。
下列关于种群和物种的叙述中不正确的是()。
已知z=2x—y,式中变量x,y满足约束条件则z的最大值为__________.
(),人们对风险的承受能力越大。
阅读下列函数说明和C代码,将应填入(n)处的字句写上。[说明]若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其问拓扑结构如图5-1所示
如果利用C++流进行输入输出,下面的叙述中正确的是
最新回复
(
0
)