zl程序教程

您现在的位置是:首页 >  后端

当前栏目

剑指Offer刷题(python版)

Python Offer 刷题
2023-09-11 14:16:10 时间
                     6 8 11 15 首先看二维数组中右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则剔除这一列;如果该数字小于要查找的数字,则剔除该数字所在的行。

二维数组查找的问题:

91e9bb9008ee811726e6cd357074a4c1459dc624







解题思路:

例如数组: 1 2 8 9

                     2 4 9 12

                     4 7 10 13

                     6 8 11 15

首先看二维数组中右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则剔除这一列;如果该数字小于要查找的数字,则剔除该数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围内剔除一行或者一列,每一步都可以缩小范围,直到找到要查找的数字,或者查找范围为空。

例如,要查找7,首先比较7和9,9大于7,则删除第4列;再比较7和8,8大于7,则删除第3列。这时数组为{[1,2],[2,4],[4,7],[6,8]}。再比较2和7,2小于7,则删除第1行;再比较4和7,则删除第二行,再比较7和7,查找完成。


替换字符串问题:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路:这题用Python来做非常投机取巧,因为为python中字符串操作有replace()这个BIF。所以只需要用20%替换‘ ’就可以。 f1807dc706068c267ede146a88cc857be470cc53                                                                                                                                                                      

【Python刷题记录】Day1-选择题 整形变量x中存放了一个两位数,要将这个两位数的个位数的个位数字和十位数字交换位置,例如,13变成31,正确的Python表达式是什么?