剑指offer python实现
该专栏主要公布剑指offer中代码的python实现
z2539329562
这个作者很懒,什么都没留下…
展开
-
python在在线笔试输入程序
第一次做笔试,因为不懂怎么标准输入,然后就没有然后了,写了一个比较烂的程序放在这,不要忘记,以后做笔试看一下'''41 22 33 54 7'''class Solution(): def print_num(self, num_list): print(num_list[0], num_list[1])so = Solution()if __na...原创 2018-04-29 15:19:10 · 1850 阅读 · 0 评论 -
剑指offer 两个链表的第一个公共节点
# -*- coding:utf-8 -*-class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def FindFirstCommonNode(self, pHead1, pHead2): list1_length ...原创 2018-06-05 19:38:10 · 191 阅读 · 0 评论 -
python2与python3中input,raw_input
python2中与用户交互的函数由两个:input 和 raw_input>>> raw_input_A = raw_input("raw_input: ")raw_input: abc >>> input_A = input("Input: ")Input: abcTraceback (most recent call last): File "...原创 2018-06-05 16:55:11 · 913 阅读 · 0 评论 -
剑指offer 圆圈中最后剩下的数字 python实现
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下...原创 2018-06-05 20:32:15 · 574 阅读 · 0 评论 -
二叉搜索树与双向链表,Python实现
class ListNode: def __init__(self, x): self.val = x self.next = Noneclass TreeNode: def __init__(self, x): self.val = x self.left = None self.right = ...原创 2018-06-06 21:14:46 · 506 阅读 · 0 评论 -
复杂链表 Python实现 剑指offer
# -*- coding:utf-8 -*-# class RandomListNode:# def __init__(self, x):# self.label = x# self.next = None# self.random = Noneclass Solution: # 返回 RandomListNode ...原创 2018-06-19 21:06:40 · 197 阅读 · 0 评论 -
剑指offer 树的子结构 Python实现
# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def HasSubtree(self, pRoot1, pRo...原创 2018-06-19 21:52:40 · 438 阅读 · 0 评论 -
剑指offer 二叉树中和为某一值的路径 Python实现
# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回二维列表,内部每个列表表示找到的路径 def F...原创 2018-06-20 10:56:43 · 538 阅读 · 0 评论 -
Python实现 二叉树遍历六种方式
class TreeNode: def __init__(self, elem, left=None, right=None): self.val = elem self.left = left self.right = rightclass SStack: def __init__(self, max_length=10000)...原创 2018-06-20 11:14:41 · 387 阅读 · 0 评论 -
京东马走日笔试题
start = [0, 0]end = [0, 0]axis = [[1, 2], [2, 1], [2, -1], [1, -1], [-1, -2], [-2, -1], [-2, 1], [-1, 2]]step = 5M = 0startx = []starty = []def horse_run(k): global M for each in axi...转载 2018-06-20 14:10:53 · 355 阅读 · 0 评论 -
剑指offer 平衡二叉树 python实现
# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def IsBalanced_Solution(self, pR...原创 2018-06-20 15:14:37 · 667 阅读 · 1 评论 -
剑指offer 重建二叉树 Python实现
# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: # 返回构造的TreeNode根节点 def reCon...原创 2018-06-20 16:10:12 · 595 阅读 · 0 评论 -
剑指offer 最大子段和实现 Python
# -*- coding:utf-8 -*-class Solution: def __init__(self): self.begin = 0 self.end = 0 self.valid = True self.max = -10000 def FindGreatestSumOfSubArray(se...原创 2018-06-25 09:36:05 · 443 阅读 · 0 评论 -
剑指offer 字符串的排列 Python实现
def list_all(string): new_list_set = [] if len(string) == 1: return string for i in range(len(string)): sub_string = string[:] sub_string.pop(i) result_list...原创 2018-06-25 21:10:41 · 1066 阅读 · 0 评论 -
在KMP基础上添加最大子串匹配功能
'''kmp algorithm for string在字符串匹配的基础上添加了匹配最大长度子串的功能'''def match_KMP(target, pattern, pnext): t_len, p_len = len(target), len(pattern) i, j = 0, 0 max_pattern = [0]*t_len while i &...原创 2018-03-26 09:31:42 · 261 阅读 · 0 评论 -
python3 链表中删除指定值的节点
class LNode: def __init__(self, elem, next_=None): self.elem = elem self.next = next_def AddToTail(head, elem): if type(head) is not LNode and head is not None:#如果head的类型不是LN...原创 2018-04-09 12:29:33 · 1469 阅读 · 0 评论 -
python实现重建二叉树
class TreeNode: #树节点 def __init__(self, elem, left_child=None, right_child=None): self.elem = elem self.left = left_child self.right = right_childclas...原创 2018-04-10 08:50:32 · 529 阅读 · 0 评论 -
python两个栈实现一个队列
class Stsck: def __init__(self): self.queue1 = [] self.queue2 = [] def push(self, elem): self.queue1.append(elem) def pop(self): if len(self.queue1) == 0:...原创 2018-04-10 10:36:30 · 305 阅读 · 0 评论 -
八阵图代码,目测可行
directions = [(1, 1), (1, 0), (1, -1), (0, -1), (-1, -1), (-1, 0), (-1, 1), (0, 1)]class Solution: def __init__(self, row, col): self.flag_arr = [[0 for i in range(col)] for j in range(r...原创 2018-05-12 09:04:52 · 665 阅读 · 0 评论 -
python 数组中出现次数超过一半的数字
def partition(data, length, start, end): if data == None or length == 0 or start < 0 or end >= length: return False tmp = end small = start - 1 for index in range(start,...原创 2018-05-22 22:41:50 · 684 阅读 · 0 评论 -
python树遍历非递归形式
class SStack(): def __init__(self): self._elem = [] def is_empty(self): return self._elem == [] def top(self): if self.is_empty(): return False ...原创 2018-05-24 09:19:25 · 288 阅读 · 0 评论 -
链表反转python实现
class LNode: def __init__(self, elem, _next=None): self.elem = elem self.next_node = _next def reverse_list(phead): if phead == None: return False new_head = None while phead: if phe...原创 2018-05-29 22:46:18 · 1319 阅读 · 0 评论 -
查找矩阵中是否存在某字符串, python实现
'''path in matrixthe matrix has mt_row * mt_col elementsthe path has len_of_path elements'''class Solution: def __init__(self, arr= None, path=None, row=0, col=0): if arr == None or...原创 2018-06-03 19:55:30 · 1777 阅读 · 0 评论 -
剑指offer 合并两个排序的链表 python2实现
# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass ListNode: def __init__(self, x): self.val = x self.nex...原创 2018-06-05 16:42:20 · 380 阅读 · 0 评论