- 博客(15)
- 收藏
- 关注
原创 TypeError: sequence item 2: expected str instance, NoneType found
下面据说是一个凯撒密码的第二个版本(向右迁移13位)s='My name is SuperLadyMa'ss='Zl anzr vf FhcreYnqlZn'd=dict()for c in (65,97): for i in range(26): d[chr(i+c)]=chr((i+13)%26+c)print(d)print(''.join(d.get(c,c) for c in s))print(''.join(d.get(c,c) for c in ss
2022-03-09 21:00:05 1698
原创 linux下matplotlib画图不能显示中文的问题
产生“矩形错误”,汉字显示不出,找了百度2页答案,有很多相像的临时解决办法对我的linux丝毫不管用... 可能是使用了ssh远程端的原因。最后终于找到一个effective的永久性的配置解决办法,自己总结整理下以便后续配置其他系统环境可以用到:1.查询当前系统内mpl的所有字体,检查是否含有中文字体:# 查询当前系统所有字体from matplotlib.font_manager import FontManagerimport subprocessmpl_fonts = set(.
2021-11-09 10:14:19 981
原创 leetcode 234题/264题/338题 一比特位 python3题解
234题 回文链表这个O1好难。设置反转链表的函数,再设置快慢指针来找到链表一半的节点(快指针永远比慢指针快一步,所以当快指针走到尽头慢指针正好在链表的一半处)。反转后面一半链表来检查前半部分链表==后半部分链表。class Solution: def isPalindrome(self, head: ListNode) -> bool: first_half_end = self.end_of_first_half(head) second_half
2021-10-01 11:11:35 142
原创 leetcode 二进制简单题 python3题解
190题 颠倒二进制位题目要求直接我就是一个不太能理解,还以为要转换二进制十进制再二进制呢。。看了题解才知道原来只是药颠倒位数,用的是位运算。学了一下位运算,左移右移翻转与或异或 << >> ~ & | ^转移思路:res左移,加上n的最后一位,用&实现,n最后一位是0,则res+0,否则+1;n右移,更新最后一位。class Solution: def reverseBits(self, n: int) -> int: r
2021-09-21 19:30:34 101
原创 leetcode 202题/204题质数计数 欧拉筛埃氏筛 python3题解
202题 快乐数这个和环形链表的题其实本质一样,都是怎么去表现循环?循环必有环形结构,1 使用哈希表存储循环内容。2 快慢指针,快指针总会追上!此时相当于证明了这是环形结构。class Solution: def isHappy(self, n: int) -> bool: def get_sum(n): summary = 0 while n > 0: n, digit = div
2021-09-17 03:21:16 231
原创 leetcode python3 169题/229题 摩尔投票法
169题 多数元素找出n个元素的数组中出现次数大于n/2的元素。属于经典简单的数组题,但是方法多,还是列举一下,顺便把摩尔投票法学习一下。方法一:排序法。库函数。用sort函数排序,那么中间位置一定是答案。时间复杂度为O(nlogn),空间复杂度为O(logn)方法二:计数法。库函数。这个思路是最简单最不需要脑子的,但是如果直接遍历去count,时间复杂度太高会超时提交失败。但如果转化为集合,利用集合中元素唯一的性质就可以降低至少n/2的时间复杂度。可以提交成功。但是使用库函
2021-09-14 23:52:13 290
原创 leetcode 119/121/161简单题题解 python3
119题 杨辉三角2用迭代做:class Solution: def getRow(self, rowIndex: int) -> List[int]: whole = [] for row_order in range(rowIndex + 1): therow = [1] * (row_order + 1) for j in range(1, row_order): t
2021-09-13 16:29:39 169
原创 leetcode 关于二叉树的基本题下 python3题解
144题 二叉树的前序遍历之前都是递归做的,很好理解,直接return。这里要求用迭代算法做。这个答案也是官方题解的python答案,翻了好多发现这个最好理解...1. 左子树value逐步推入答案,以推完作为循环结束条件,登记每一个根节点、左value的左子树;2. 对于以上的左子树们按照从远到近的距离和依然从左到右的顺序对其右子树进行循环。距离优先级使用临时栈pop来实现,很巧妙!3. 以临时栈的全部推入作为退出大循环的条件。class Solution: def pr
2021-09-11 14:23:54 235
原创 leetcode 关于二叉树的基本题上 python3题解
1. 递归我本来的思路就是递归。但是要注意root若为空返回空列表,不然就会产生AttributeError:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclas
2021-09-08 01:39:01 195
原创 leetcode 中的链表简单题 python3
之前没有学过链表,leetcode最近在做简单题,才发现链表的定义,元素之间是通过节点连接的。链表类定义以后的函数调用解释:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextp = ListNode()l1: ListNode #l1 就是链表里的
2021-09-06 21:55:55 354
原创 python3 斐波那契数列以及爬楼梯
动态规划算法本质上是这步的“价值”由上一步决定,比如求公共最长子序列:例子(来源 算法图解)用户在使用搜索引擎,比如搜索fosh。那我们就要猜测用户是想要搜索fish还是fort.怎么求取公共最长子序列。做一个4*4网格,每个网格的计算方式都由上一格来决定。if word_a[i] == word_b[j]: cell[i][j] = cell[i-1][j-1] + 1else: cell[i][j] = max(cell[i-1][j], cell[i][j-1]
2021-09-06 21:28:12 243
原创 python3 二分查找算法。leetcode 简单题部分记录
35题 搜索插入位置这个题其实python3 用3行就可以解决了,但是用index这种实在是面试官会直接给你挂掉的程度吧。。这样做题没有收获。看到要求是算法时间复杂度必须在logn。特意去学习了一下,也看了《算法图解》的二分法。搞明白之后写下来不知道怎么解决插入新元素的问题,在题解里看到了return left直接解决,写了几个例子才逐渐理解。class Solution: def searchInsert(self, nums: List[int], target: int) -&g
2021-09-04 20:52:50 116
原创 mac下urlopen报错和chardet模块安装
1. urlopen打开报错今天才看到鱼c爬虫的第一课,打开网址就卡住了,报了n多错,直接懵了,仔细翻了一下最后几句,发现证书有问题,然后查了一下改了,全局取消验证:import sslssl._create_default_https_context = ssl._create_unverified_context2. chardet与pip的安装发生在想查出网址编码格式,需要安装模块chardet(detection),mac真的就得重新搜,发现很多几年前的方法已经过时了。。
2021-08-31 17:15:35 333
原创 小白学递归
开始学递归的定义就发现不简单啊,挺绕的。大概做一个定义上的总结,然后记录一下我在练习递归时遇到的各种问题,时常翻出来看看温故知新。首先是定义上:递归(Recursion)是指在函数的定义中使用函数自身的方法。使用递归必须满足两个基本条件:函数调用自身以及设置正确返回(尤其是终止循环)的条件。它的优点是把大规模的问题逐渐缩小为小规模问题,简化解决问题的难度;缺点是每一次函数的调用都要经过压栈、弹栈、保存和恢复寄存器的栈操作,在运行时会很浪费时间和内存;如果设置了错误的返回条件,代码会无休止调用,栈溢出
2021-08-30 19:37:28 184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人