小武与剑指offer的恩怨情仇

  1. 请实现一个函数,将一个字符串中的每个空格替换成“%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))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值