- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 正则匹配自用整理
^ 匹配字符串的开始。$ 匹配字符串的结尾。\b 匹配一个单词的边界。\d 匹配任意数字。\D 匹配任意非数字字符。x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。x* 匹配0次或者多次 x 字符。x+ 匹配1次或者多次 x 字符。x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。(a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。(x) 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.s...
2021-03-12 12:46:06 170
原创 【leetcode】136. 只出现一次的数字(python实现)
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?思路:题目很简单,怎么做都可以,我是用内置函数count做的,参考官方答案,使用异或做简洁很多,注意:python中^表示异或,**表示幂我的:class Solution: def singleNumber(self, nums: List[int]) -> int: f.
2021-02-24 23:02:51 305
原创 【leetcode】1028.从先序遍历还原二叉树(python实现)
题目:我们从二叉树的根节点 root开始进行深度优先搜索。在遍历中的每个节点处,我们输出D条短划线(其中D是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出S,还原树并返回其根节点root。示例 1:输入:"1-2--3--4-5--6--7"输出:[1,2,5,3,4,6,7]没做出来,直接理解官方答案# Defi...
2021-02-24 17:40:40 285
原创 【leetcode】80.删除排序数组中的重复项(python实现)
题目:给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。思路:每次比较相邻两位,相同时,看last的值是否也与之相同,如果相同则满足条件,删除对应值;若不同则更新last。本人解法:class Solution: def removeDuplicates(self, nums: List[int]) -..
2021-02-24 17:09:55 239
原创 【leetcode】珠玑妙算(python实现)
题目:珠玑妙算游戏(the game of master mind)的玩法如下。计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,计算机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。作为用户,你试图猜出颜色组合。打个比方,你可能会猜YRGB。要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜中”。给定一种颜色组合solution和一个猜测guess,编写一个方法,返回
2021-02-23 02:00:43 663
原创 re.split()的小坑
当使用正则表达式划分字符串时,有一种正则匹配是利用\s匹配空白字符re.split(r'[;,\s]', line) # \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]但是如果如上编写,在分割如下字符串时的结果是这样的:line = 'asdf fjhk; ijhi, acdks,khcvds, foo're.split(r'[;,\s]', line) >>['asdf', 'fjhk', 'ijhi', 'acdks',
2020-08-27 17:43:05 1034
原创 Python读取Excel时把文本数据自动识别为float或int类型
在做项目的时候发现,当excel表中某一列全为数字形式时,pandas读取会把该列判断为float类型,但是我们原本想要的可能是str类型,因此需要对读取的格式进行显示的规定,如下dtype={ '需要按照str类型读取的列名1':str, '需要按照str类型读取的列名2':str } data=pd.read_excel(r"文档路径",dtype=dtype) 参考:https://blog.csdn.net/grandesucesso/art
2020-07-13 18:11:22 4407
原创 识别中Excel的空值和空格值
在实践的时候发现,常用的notnull函数并不能将空格识别为空值,但很多时候表格中的空数值是有空格存在的,这样单纯使用notnull就不能满足识别空的需求,经查阅资料,可利用Series的apply方法结合isspace()函数进行判断,修改空格为NaN,这样接下来继续用isnull()或notnull()就可以正常识别出所有的空数值了。df['列名']=df['列名'].apply(lambda x: np.NaN if str(x).isspace() else x)idx_null = df[
2020-07-03 17:09:24 3326
原创 PTA(1.16)L1-005考试座位号
L1-005 考试座位号 (15 分)每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 ...
2019-01-16 01:55:43 819 2
原创 PTA练习(1.15)打印沙漏、个位数统计
L1-002 打印沙漏本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多...
2019-01-16 00:22:25 156
原创 关于Comparator和Comparable实际使用区别的总结(目前只讨论了数组排序,其他容器的排序尚未研究,有待补充)
1.使用Comparator需要import java.util.Comparator,而Comparable不需要import任何东西;2.使用Comparator必须单独给他造一个类,实现一个形如public int compare(Object o1,Object o2){}的函数,使用Comparable需要在用到比较器的类中实现该接口,即实现一个形如public int comp...
2019-01-10 01:22:04 154
原创 2018.11.28学习记录
1.快速排序(不稳定):每次选择一个基准数,分别从左右进行探测,对选定的基准数字进行归位,让它左边都比它小,右边都比它大,再对左右区间重复第二步,直到各区间只有一个数。最坏时间复杂度 最优时间复杂度 平均时间复杂度 实现://快速排序void quick_sort(int s[], int l, int r){ if (l < r)...
2018-11-28 21:44:57 166
转载 2018.11.26学习记录
一.共享栈原理:想要一个数组实现两个栈,那么就必须一个栈的栈顶从数组下标为0处开始,另一个栈从数组额最大下标处开始,两个栈相对而生如下图所示:如何判断栈满?当两个栈顶标记重合时,表示共享栈已经满了代码如下:头文件ShareStack.h#pragma once #include<stdio.h>#include<stdlib.h> ...
2018-11-26 21:16:38 142
转载 2018.11.25学习记录
1.选择排序:从未排序中选择出最小的放到已排序的末尾。代码:(转自http://www.cnblogs.com/0201zcr/p/4764427.html)/** * 选择排序算法 * 在未排序序列中找到最小元素,存放到排序序列的起始位置 * 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。 * 以此类推,直到所有元素均排序完毕...
2018-11-25 18:14:14 163
转载 2018.11.24 学习记录
1.冒泡排序比较相邻的元素,如果第一个比第二个大,就交换它们两个;对每一对相邻元素做同样的工作,这样最后的元素一定为最大的数;针对所有的元素重复以上步骤,除了最后一个,直到排序完成。void bubbleSort(int arr[]){ int len=arr.length; for(int i=0;i<len-1;i++){ boolea...
2018-11-24 16:57:34 114
转载 2018.11.23学习记录
1.压缩存储转载自:https://www.cnblogs.com/lnlin/p/6852236.html/*数组的压缩储存: 在一些高阶矩阵中,非零元素非常少,此时如果使用二维数组将造成 储存空间的浪费,这时可只储存部分元素,从而提高储存空间的利用 率,通常的做法是为多个相同值的元素只分配一个储存单元,对值为 零的元素不分配储存单元。我们把非零元素个...
2018-11-23 20:34:29 126
原创 20.数的读法
#include<iostream>#include<string>using namespace std;string b[10]={"ling ","yi ","er ","san ","si ","wu ","liu ","qi ","ba ","jiu
2018-03-12 22:04:00 228
原创 关于局部变量的恍然大悟
看了学长制作的蓝桥杯经验ppt其中有关于局部变量的个两段代码如下:1.正确代码#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)==1){ int res=-1e9; for(int i=0;i<n;i++){ int tmp; scanf("%d",&tmp)
2018-02-04 13:18:34 153
原创 十六进制转八进制
1.先转化为二进制#includeusing namespace std; int main() { int n,m,i,j,k; cin>>n; string sixteen[10]; for(i=0;i<n;i++){ cin>>sixteen[i]; } for(i=0;i<n;i++){ string tow; string eight;
2018-02-01 22:48:54 171
原创 十六进制转十进制(C语言实现)
首先,了解如何将字符串转化为十进制数:从数字组成的字符串转化为十进制数步骤如下:1、挨个读取数组,从第0位开始2、将字符转化为数字。比如从'1'转化为1。可以参考ASCII码表,字符'0'是48,所以只需要将字符减去48即可。3、将前一个计算出的十进制数(初始化为0)乘以10加上第二步计算出的数字。4、循环1-3步直到读取完数组内所有内容。之所以这样算需要举个例子:比如数组内...
2018-01-29 14:40:17 16825
原创 蓝桥杯十六进制转换延伸
printf("%d,%u,%o%x\n",a,a,a,a);分别按整型,无符号整型,八进制,十六进制,输出a的值八进制和十六进制都是按无符号处理的(由于%o%x是小写 输出的十六进制、八进制的ABCDEF等 都是小写abcdef)十进制转十六进制:#include int main() { int n; scanf("%d",&n);
2018-01-29 14:13:25 147
software architecture复习资料(包含考点)
2018-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人