Python
陈小q
这个作者很懒,什么都没留下…
展开
-
Python OSError: [Errno 99] Cannot assign requested address解决方法
运行客户端程序时出现如下错误:OSError: [Errno 99] Cannot assign requested address用 vim /etc/hosts 查询172.0.1.1 后的主机名不需要更改,于是用如下代码查询本机IP地址,然后将服务器bind的地址改为本机地址,问题解决。import psutilinfo = psutil.net_if_addrs()net1=i...原创 2019-11-27 14:41:44 · 9037 阅读 · 0 评论 -
Python:如何判断一个数组是否是二元查找树后序遍历的结果
def IsAfterOrder(arr, start, end): if arr == None: return False root = arr[end] i = start while i<end : if arr[i]>root: break i += 1 j = i...原创 2019-08-15 22:00:36 · 250 阅读 · 0 评论 -
Python:如何对二叉树进行镜像翻转
from collections import dequeclass BiTNode: def __init__(self): self.data = None self.lchild = None self.rchild = Nonedef reverseTree(root): if root == None: ...原创 2019-08-15 22:18:11 · 463 阅读 · 0 评论 -
Python:工资排序问题
给定一组数,按照数组中出现的次数依次从大到小排序,出现次数一样的按照数组中的先后顺序输出比如:输入:1 1 1 1 3 3 3 4 5 2 6 6 6 6 6输出:6 6 6 6 6 1 1 1 1 3 3 3 4 5 2def qsort(li): num = len(set(li)) #不能用*2 result = [[0 for i in range(nu...原创 2019-08-21 23:23:36 · 1653 阅读 · 0 评论 -
Python:如何找出数组中唯一重复的元素
1.Hash法(字典法):空间换时间def findDup(array): if array == None: return -1 lens = len(array) hashTable = dict() i = 0 while i<lens-1 : hashTable[i] = 0 i += 1 ...原创 2019-08-16 22:05:48 · 2244 阅读 · 0 评论 -
Python:如何找出旋转数组的最小元素
def getMin(arr, low, high): if arr == None : print('数组为空') return #判断数组元素值是否都相等 if high == (len(arr)-1): suma = sum(arr) sumb = arr[low] * len(arr) ...原创 2019-08-16 23:17:59 · 188 阅读 · 0 评论 -
Python:选择排序
def select_sort(lists): lens = len(lists) for i in range(lens): mi = i for j in range(i+1, lens): if lists[mi] > lists[j]: mi = j lists[mi], lists[i] = lists[i], lists[mi] return li...原创 2019-08-13 11:07:20 · 102 阅读 · 0 评论 -
Python:插入排序
插入排序是一种稳定的排序方式,最好O(n),最坏、平均O(n2),空间复杂度O(1)def insert_sort(lists): lens = len(lists) for i in range(1,lens): key = lists[i] j = i-1 while j>=0: if lists[j]>key: lists[j+1] = lists...原创 2019-08-13 11:37:28 · 126 阅读 · 0 评论 -
Python:如何不使用循环输出1-100
循环都可以使用递归来给出等价实现def prints(n): if (n>0): prints(n-1) print(n)if __name__ == '__main__': prints(100)原创 2019-08-13 10:41:27 · 2898 阅读 · 0 评论 -
Python:替换不吉利数字
小明认为某些数字不吉利,付账时会尽可能少的多付一些钱,使得价格中不包含这些不吉利数字,并且不出现0.例如,不吉利数字为1,4,7,8,商品价格为1000,小明实际支付2000.实现程序,输入商品原来的价格price,不吉利数字集合unlucky_numbers,求小明付账时的价格lucky_price.def numToLucky(price, li) : if li == No...原创 2019-08-22 14:39:11 · 660 阅读 · 0 评论 -
Python:统计字符串中各元素出现的次数
统计String中每个单词出现的个数(不区分大小写)输入描述:输入一个字符串,例如:“a b A v”输出描述:v:1:3b:1a:2def countEach(strs) : dic = {} strs = strs.lower() lens = len(strs) i = 0 while i < lens : if...原创 2019-08-22 15:12:50 · 2720 阅读 · 0 评论 -
Python:如何求数组中两个元素的最小距离
def minDis(arr, num1, num2): if arr == None or len(arr) <= 0 : print('参数不合理') return 2**32 result1 = lastPos1 = -1 result2 = lastPos2 = -1 result = 2**30 i = 0 ...原创 2019-08-17 20:56:49 · 1550 阅读 · 0 评论 -
Python:如何求数组连续最大值
1.重复利用已经计算的子数组和:O(n2)def maxSubArr(arr): if arr == None: print('数组为空') return maxsum = -2**31 i = 0 lens = len(arr) while i<lens : j = i sums = ...原创 2019-08-17 21:34:11 · 2021 阅读 · 0 评论 -
Python:如何在有规律的二维数组中进行高效的数据查找
def findBin(arr, data) : if arr == None : return False i = 0 rows = len(arr) cols = len(arr[0]) j = cols - 1 while i<rows and j>=0 : if arr[i][j] == data ...原创 2019-08-17 22:05:36 · 664 阅读 · 1 评论 -
Python:如何求解迷宫问题
class Maze(): def __init__(self): self.n = 4 def printSolution(self, sol): i = 0 while i<self.n : j = 0 while j<self.n : ...原创 2019-08-17 22:28:23 · 1376 阅读 · 0 评论 -
Python:如何从顶部开始逐层打印二叉树节点数据
from collections import dequeclass BiTNode: def __init__(self): self.data = None self.lchild = None self.rchild = None def arraytotree(arr, start, end): if e...原创 2019-08-15 21:13:28 · 264 阅读 · 0 评论 -
Python:如何把一个有序整数数组放到二叉树中
class BiTNode: def __init__(self): self.data = None self.lchild = None self.rchild = None def arraytotree(arr, start, end): if end>=start: root = Bi...原创 2019-08-15 20:53:58 · 529 阅读 · 0 评论 -
Python:字符串排形状
某公司的 N位(N>=4)研发同学组织了一次秋游活动,某同学带了个无人机在高空拍照,活动结束时,有人提议排成Y字形来拍一张合照。用字符串中的每一个字符(不是换行符或结束符’\0’)代表一位老师,输出排好后的队形。要求 Y字除去中心点外,上下半部分等高,按照从左到右,从上到下进行排序。队形中没人的部分用空格占位。输入数据保证可以排出一个完整的Y字,即长度为 3k+1 (k>=1)...原创 2019-08-23 20:36:22 · 439 阅读 · 0 评论 -
Python:归并排序
归并排序是稳定的,时间复杂度为O(nlogn),空间复杂度O(1)def merge(left, right): i, j = 0, 0 result = [] while i<len(left) and j<len(right): if left[i] < right[j]: result.append(left...原创 2019-08-13 16:19:55 · 154 阅读 · 0 评论 -
Python:快速排序
快速排序是一种不稳定的排序方式,最坏O(n2),最好、平均O(nlogn),空间复杂度O(logn)def quick_sort(lists, left, right): if left >= right: return lists key = lists[left] low = left high = right while left < right : whil...原创 2019-08-13 17:07:25 · 109 阅读 · 0 评论 -
Python:希尔排序
希尔排序不稳定,平均O(nlogn),最差O(ns)(1<s<2),空间O(1)def shell_sort(lists): lens = len(lists) group = 2 step = lens // group while step > 0: for i in range(step): j = ...原创 2019-08-13 18:09:17 · 128 阅读 · 0 评论 -
Python:堆排序
不稳定,适用于记录较多的文件,时间复杂度O(nlogn)def adjust_heap(lists,i,lens): lchild = 2*i + 1 rchild = 2*i + 2 maxs = i if i < lens//2: if lchild < lens and lists[lchild] > lists[maxs]...原创 2019-08-13 19:02:20 · 65 阅读 · 0 评论 -
Python:基数排序
稳定import mathdef radix_sort(lists,radix=10): k = int(math.ceil(math.log(max(lists),radix))) bucket = [[] for i in range(radix)] for i in range(1, k+1): for j in lists: ...原创 2019-08-13 22:14:17 · 121 阅读 · 0 评论 -
Python:链表的逆序
插入法:从链表的第二个节点开始,把遍历到的节点插入到头结点的后面,直到遍历结束class LNode: def __init__(self): self.data = None self.next = Nonedef Reverse(head): if head == None or head.next == None: ret...原创 2019-08-14 10:32:20 · 507 阅读 · 0 评论 -
Python:无序链表删除重复项
顺序删除,双重循环class LNode: def __init__(self): self.data = None self.next = Nonedef removeDou(head): if head == None or head.next == None : return outerCur = head.nex...原创 2019-08-14 11:12:23 · 249 阅读 · 0 评论 -
Python:如何计算两个单链表所代表的数之和
class LNode: def __init__(self): self.data = None self.next = Nonedef LAdd(h1,h2): if h1 == None or h1.next == None: return h2 if h2 == None or h2.next == None: ...原创 2019-08-14 16:10:57 · 233 阅读 · 0 评论 -
Python:如何找出单链表中的倒数第K个元素
class LNode: def __init__(self): self.data = None self.next = Nonedef ConstructList(): i = 1 head = LNode() cur = head while i<8 : tmp = LNode() ...原创 2019-08-14 16:36:20 · 475 阅读 · 0 评论 -
Python:如何检测一个较大的单链表是否有环
class LNode: def __init__(self): self.data = None self.next = Nonedef ConstructList(): i = 1 head = LNode() cur = head while i<8 : tmp = LNode() ...原创 2019-08-14 17:03:09 · 196 阅读 · 0 评论 -
Python:如何判断两个单链表(无环)是否交叉
Hash法首尾相接法:如把链表1 的尾结点接到链表2的头指针,然后判断链表2是否有环,参考如何判断一个单链表是否有环尾结点法class LNode: def __init__(self): self.data = None self.next = Nonedef IsIntersect(head1, head2): if head1 =...原创 2019-08-14 17:40:14 · 600 阅读 · 0 评论 -
Python:栈的实现
1.数组class MyStack: def __init__(self): self.items = [] def isEmpty(self): return len(self.items) == 0 def size(self): return len(self.items) def...原创 2019-08-14 19:56:21 · 227 阅读 · 0 评论 -
Python:队列的实现
1.数组class MyQueue: def __init__(self): self.arr = [] self.front = 0 self.rear = 0 def isEmpty(self): return self.front == self.rear def size(self): ...原创 2019-08-14 20:34:51 · 156 阅读 · 0 评论 -
Python:如何根据入栈序列判断可能的出栈序列
class Stack: def __init__(self): self.items = [] def empty(self): return len(self.items) == 0 def size(self): return len(self.items) def top(self): i...原创 2019-08-14 22:13:17 · 672 阅读 · 0 评论 -
Python:冒泡排序
冒泡排序是一种稳定的排序方法,最好O(n),最坏、平均O(n2),空间复杂度O(1)def bubble_sort(lists): lens = len(lists) for i in range(lens-1): for j in range(lens-1-i): if lists[j]>lists[j+1]: lists[j], lists[j+1] = list...原创 2019-08-13 15:50:12 · 195 阅读 · 0 评论