剑指Offer刷题(python版)

简介: 牛客网上只支持python 2.7版本,实际和3.0及以上版本有区别。 第一天: 二维数组查找的问题: 解题思路: 例如数组: 1 2 8 9                      2 4 9 12                      4 7 10 13                      6 8 11 15 首先看二维数组中右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则剔除这一列;如果该数字小于要查找的数字,则剔除该数字所在的行。

牛客网上只支持python 2.7版本,实际和3.0及以上版本有区别。

第一天:

二维数组查找的问题:

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-剑指offer(15,16)反转链表,合并两个链表
Python-剑指offer(15,16)反转链表,合并两个链表
Python-剑指offer(13,14)调整数组顺序使奇数置于偶数前面,链表中倒数第k个节点
Python-剑指offer(13,14)调整数组顺序使奇数置于偶数前面,链表中倒数第k个节点
Python-剑指offer(10,11,12)矩形覆盖,二进制中1的个数,数值的整数次方
Python-剑指offer(10,11,12)矩形覆盖,二进制中1的个数,数值的整数次方
Python-剑指offer(7,8,9)斐波那契数列,跳台阶,变态跳台阶
Python-剑指offer(7,8,9)斐波那契数列,跳台阶,变态跳台阶
Python-剑指offer(5,6)用两个栈实现队列,旋转数组中的最小数字
Python-剑指offer(5,6)用两个栈实现队列,旋转数组中的最小数字
Python-剑指offer(4)重建二叉树
Python-剑指offer(4)重建二叉树
Python-剑指offer(2,3)替换空格,从头到尾打印链表
Python-剑指offer(2,3)替换空格,从头到尾打印链表
Python-剑指offer(1)二维数组的查找
Python-剑指offer(1)二维数组的查找
|
12月前
|
存储 算法 Java
python/测试/测开-刷题第5天
python/测试/测开-刷题第5天
|
12月前
|
Python
python/测试/测开-刷题第4天
python/测试/测开-刷题第4天

热门文章

最新文章