二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
在二维行列有序数组中,从右上角开始查找整数num时:
1.num大于数组元素,向下走;
2.num小于数组元素,向左走;
3.如果等于,则返回True。
当越过数组边界时,则返回False。查找起始位置可以是左下角。
代码
# -*- coding: utf-8 -*-
class Solution:
def Find(self,target,array):
row,col = 0,len(array[0])-1
while (row <= len(array)-1) and (col >= 0):
if target > array[row][col]: #目标值大,往下走
row,col = row+1,col
elif target < array[row][col]: #目标值小,往左走
row,col = row,col-1
else:
return True
return False
if __name__ == "__main__":
solution = Solution()
array = [[1,2,5,7],[3,4,9,13],[4,7,10,14],[5,8,11,15]]
target = 18
print solution.Find(target,array)
替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
- 解法1
直接调用str的replace方法,原字符串不变 - 解法2
将实参转换成list类型。顺序遍历,遇到空格就替换。对于多个字符替换问题,该方法不适用,需要利用filter函数。 - 解法3
调用str.split()方法,切割字符串,再用‘%20’.join()链接切割后的字符串列表。 - 关于str、tuple、num不可变,list、dict、set可变,待补充
代码
# -*- coding: utf-8 -*-
class Solution:
def replaceSpace1(self,s):
return s.replace(" ","%20") #直接调用str的replace方法
def replaceSpace2(self,s):
sList = list(s) #转换成list,list可变,str不可变
for i in range(len(sList)):
if sList[i] == " ":
sList[i] = "%20" #替换
return "".join(sList)
if __name__ == "__main__":
s = "we are happy"
solution = Solution()
print solution.replaceSpace1(s)
print solution.replaceSpace2(s)
print s #str不可变
本文介绍了一种在二维有序数组中查找特定整数的方法,通过从右上角开始比较,根据大小调整搜索方向,实现了高效查找。同时,讨论了三种不同的字符串空格替换策略,包括使用内置函数、列表遍历替换和字符串切割后重组。

被折叠的 条评论
为什么被折叠?



