- 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
这道题比较简单,但是主要被我用来研究python字符串处理的常见三个方法:分别是:
strip()
split()
replace()
我的答案就是:
new = s.replace(’ ‘,’%20’)
那么其他的方法呢?先研究下这几个方法的使用
strip()
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
split()
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
x.split()[::] 正序排列
x.split()[::-1]反序排列
]例子:结合上面两者写一个for循环,对输入的数字,带有空的进行分离,同时取出偶数项目。
核心思想是:不断的去除首尾的空格不断的提取输入的数字
b = [ x for x in [int(i) for i in input().strip().split()] if x % 2 ==0]
补充给strip
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
replace 的用法
x.replece(old, new)
二维数组中的查找:
首先是 :
写法介绍:
return False
return Ture
对于if 的输出正确与否的写法
其次是:
在这种代码中都不能使用numpy这种包,只能手写最原始的,所以需要算法上面的一些书写。这是典型的查找使用了,首先输入的格式很好,从左到右从上到下的大小排布可以减少我们的暴力循环的使用。通过判断的方法可以减少循环的使用。注意循环和if的搭配使用,用错了很容易在循环没有结束就给出判断的结果
class Solution:
# array 二维列表
def Find(self, target, array):
Row = len(array) #读取行
line = len(array[0]) #读取列
if array == [[]]: #从0开始所以长度减去1
return False
else:
for i in range(Row):
if target >= array[i][0] and target <= array[i][line-1]:
if target in array[i]:
return True
else:
continue
网上最快的方法是:
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
if array=[[]]:
return error
n=len(array)
for i in range(n):
if target in array[i]:
print(‘ok’)
a = Solution()
target = 7
array = [[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
print(a.Find(target,array))