python中空格替换_Python替换空格
如果直接每次遇到空格添加'%20',那么空格后面的数字就需要频繁向后移动。遇到这种移动问题,我们可以尝试先给出最终需要的长度,然后从后向前扫描,同时给定两个指针来保证定位。逆向思维'''
请实现一个函数,将一个字符串中的空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
'''
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
# 使用append一次遍历即可替换
# 由于list的append是O(1)的时间复杂度,除了扩容所导致的时间损耗,该算法复杂度为O(n)
def replaceSpaceByAppend(self, s):
string = list(string)
stringReplace = []
for item in string:
if item == ' ':
stringReplace.append('%')
stringReplace.append('2')
stringReplace.append('0')
else:
stringReplace.append(item)
return "".join(stringReplace)
# 创建新的字符串进行替换
def replaceSpace1(self, s):
tempstr = ''
if type(s) != str:
return
for c in s:
if c == ' ':
tempstr += '%20'
else:
tempstr += c
return tempstr
# 简单代码替换
# 在Python中str类型是不可变的类型, 使用replace语句会生成一个新的str, 原始的s还是带空格的str变量
def replaceSpace2(self, s):
if type(s) != str:
return
return s.replace(' ', '%20')
# 书中给的思路
# 判断输入类型的时候,isinstance必须首先判断,因为如果输入为integer的话,没有len,就会直接报错
def replaceSpace3(self, s):
if not isinstance(s,str) or len(s) <= 0 or s == None:
return ""
spaceNum = 0
for i in s:
if i == " ":
spaceNum += 1
newStrLen = len(s) + spaceNum * 2
newStr = newStrLen * [None]
indexOfOriginal, indexOfNew = len(s) - 1, newStrLen - 1
while indexOfNew >= 0 and indexOfNew >= indexOfOriginal:
if s[indexOfOriginal] == ' ':
newStr[indexOfNew-2:indexOfNew+1] = ['%', '2', '0']
indexOfNew -= 3
indexOfOriginal -= 1
else:
newStr[indexOfNew] = s[indexOfOriginal]
indexOfNew -= 1
indexOfOriginal -= 1
return "".join(newStr)
s = 'we are happy'
test = Solution()
print(test.replaceSpace1(s))
print(test.replaceSpace2(s))
print(test.replaceSpace3(s))
python中空格替换_Python替换空格相关推荐
- python正则匹配空格+数字+空格_详解Python中正则匹配TAB及空格的小技巧
详解Python中正则匹配TAB及空格的小技巧 发布时间:2020-10-15 08:38:48 来源:脚本之家 阅读:94 作者:杰瑞26 在正则中,使用.*可以匹配所有字符,其中.代表除\n外的任 ...
- python中的常量_Python中的变量和常量
本文主要介绍Python中的变量和常量,包括变量的命名规范,使用注意事项 -------------- 完美的分割线 --------------- 1.变量 1.1.变量理解 1)什么是变量 变量即 ...
- python中查找字符串_python中字符串操作--截取,查找,替换
python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...
- python中一般使用几个空格表示缩进_python中使用空格还是使用 Tab键缩进的建议...
对于程序员来说,其实Tab和空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格 ...
- python中一般使用几个空格表示缩进_为什么Python pep-8强烈建议使用标签上的空格来缩进?...
为什么Python pep-8强烈建议使用标签上的空格来缩进? 我在Stack Overflow和PEP 8上看到,建议仅在Python程序中使用空格进行缩进. 我能理解一致压痕的必要性,我感到痛苦. ...
- python修改rgb值_Python替换或更改给定RGB或十六进制值的HSV值
关于RGB和HSV空间之间的关系,我建议您看看这个blog post.这个Wikipedia page对HSV及其与RGB空间的关系有详细的描述.在 python中的大多数可视化库(包括matplot ...
- python中while嵌套循环_python中的while循环
循环 目标 程序的三大流程 while 循环基本使用 break 和 continue while 循环嵌套 01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 -- 从上向下,顺 ...
- python中定义字符串_python中的字符串
python中的字符串一旦定义,则不可以修改 python中的原始字符串 即 在字符串前面加小写字母r 比如:打印输出C:\Program Files\Microsoft Games python中的 ...
- python中格式化字符串_Python中所有字符串格式化的指南
python中格式化字符串 Strings are one of the most essential and used datatypes in programming. It allows the ...
最新文章
- 云计算之路-道歉,无地自容的:4月7日14:15~18:35网站故障给大家带来麻烦了
- db browser连接mysql_MyEclipse DB Browser 连接 MySQL 配置 mysql select
- bash-shell高级编程--引用
- 过滤选择器——可见性过滤选择器
- 成都内推 | 腾讯游戏王者荣耀算法团队招聘算法实习生
- Linux下的压缩文件剖析
- 不到600美元,即可获取一套MF Porting kit 3.0
- 《Algorithms》Comparable 实现排序大全
- 使用多线程与不使用多线程访问同一个网址实例对比
- python—模块-sys
- “技术天才”李一男已出狱:曾被视为华为接班人!华中科大少年班,27岁华为副总裁,曾任百度CTO...
- 【作业报告】作业5 四则运算 测试与封装 5.1
- Arduino的详细介绍(基于Mega2560)(分文)——pinMode,digitalWrite/digitalRead()
- 38.JavaScript中异步与回调的基本概念,以及回调地狱现象
- mac python 连接oracle数据库(mac cx_Oracle.DatabaseError: DPI-1047: )
- layui时间范围控件限制时间
- Linux已挂载的硬盘无法访问
- SimulinkSTM32开发(一)开发环境搭建
- 怎么理解——用户不是人
- matlab regress
热门文章
- FD.io VPP用户文档:会话层架构与VPP应用
- DPDK服务核心(coremask)
- java jsp网页计算器_JSP实现计算器功能(网页版)
- Django:cmd虚拟环境及第一个project、Pycharm虚拟环境及第一个project、Not Found favicon.ico、Windows命令行创建虚拟环境、Django版本选择
- python 求子字符串_求子串-KPM模式匹配-NFA/DFA
- 对java的集合的理解_谈谈你对java集合类的理解
- sheet中没有getcolumns()方法吗_家庭亲子教育中的八种方法,你做到了吗?
- OpenShift 4 - 部署 RabbitMQ 集群
- OpenShift 4 - 查看关键证书到期日期
- 容器入门(4) - skopeo