- 博客(45)
- 问答 (5)
- 收藏
- 关注
原创 PAT自测
1.PAT(乙级)2020年秋季考试自测-60'2.反思第一题本质是大整数运算,这道题没有很快写出来的原因是1.没有记住整型的范围,快速识别大整型运算.2.对字符串加法的代码不够熟练。
2021-05-22 17:35:37 169
原创 1078 字符串压缩与解压 (20 分)
蛮不错的一道题,没什么难度,但是对基本功有要求1.scanf("%[^/n]",s);读入char*字符串;2,char*字符串到string字符串变换3.sstream;
2021-05-19 12:01:29 112
原创 meta camp+21春季PAT乙级反思
一.成绩:MetaCamp:一题未过,前两题过样例21春季PAT乙级:49,前三题做完有个别例子没过,第四题没做出来,第五题不会.第五题贪心算法不会,没有学过,但是应该要能写出暴力法。第四题,基本思路太暴力了,饶了很久,走了弯路...
2021-05-09 14:45:39 278
原创 从1009得到的启示
Hello World Here I Come这样的一串字符串如何读取呢?方法一:逐个读入:首先scanf("%[^/n]");获取所有数据,其次text[num1][num2]一个一个字符的对text写入,遇到空格num1加一,并且num2等于空格方法二:逐条字符串读入:text[num1][num2],while(scanf("%s",text[num1])!=EOF){num1++};。没有特别好的c++的string方式读入...
2021-05-07 11:28:25 96
原创 leetcode 86 分割链表 经典
struct ListNode* partition(struct ListNode* head, int x){ struct ListNode* sml_now=(struct ListNode*)malloc(sizeof(struct ListNode)); struct ListNode* big_now=(struct ListNode*)malloc(sizeof(struct ListNode)); struct ListNode* sml_b
2021-05-04 21:49:06 100
原创 leetcode61-旋转链表
struct ListNode* rotateRight(struct ListNode* head, int k){ if (!head) return head; int length=0; struct ListNode*temp=head; while(temp) {temp=temp->next; length++;} temp=head; if (k%length==0) return head
2021-04-28 21:43:22 138
原创 leetcode-82. 删除排序链表中的重复元素 II
这道题写了很久,也的确是写的很难受很难受,先上一下我的代码,说明思路。struct ListNode* deleteDuplicates(struct ListNode* head){ if (!head||!head->next) return head;//剔除掉无需操作的过短链表 //因为采用快慢指针,考虑链表相对较短情况的边界情况。 //链表长度为2的特殊情况 if (!head->next->next)
2021-04-28 21:03:34 82
原创 左神算法第三节
1.满二叉树的定义从上到下,从左到右依次添加的每一个状态就是满二叉树2.二叉树的结构数组形式—i位置对应的左孩子;2i+1,右孩子2i+2。3.大根堆://heapInsert//give index,num,numswhile (nums[(index-1)/2]>nums[i]){ swap(nums[(index-1)/2],nums[i]); index=(index-1)/2;}//heapify,give index,numswhile (2*index+2&l
2021-04-27 11:45:38 115
原创 左程云算法第四节
一.各种排序总结。种类时间复杂度/空间复杂度/稳定性冒泡排序O(n**2)—O(1)—稳定选择排序O(n**2)—O(1)—不稳定插入排序O(n**2)—O(1)—稳定快速排序O(n*log2n)—O(log2n)—不稳定归并排序O(n*log2n)—O(n)—稳定堆排序O(n*log2n)—O(1)—不稳定在三种log2n级别排序中,快速排序最快,堆排序空间复杂度最小,归并排序最稳定。...
2021-04-26 23:27:02 135
原创 左程云算法第一课初级
一.选择排序//give arr[],arr_length如何排序?int mindex;for(int i=0;i<arr_length;i++){ mindex=i for(int j;j<arr_length;j++) { if (arr[mindex]<arr[j]) mindex=j; } int temp=arr[i]; arr[i]=arr[mindex]; arr[mindex]=arr[i];}二.冒泡排序//give arr[],
2021-04-24 15:39:39 332
原创 习题4-5 换硬币 (20 分)
这道题特别注意的是for循环输出的值是最后那个不能满足条件的变量,与for循环并不会检查第二个条件是否符合,第一个数是无条件的#include <stdio.h>int main(){ int money,sum5,sum2,coin_1,coin_2,coin_5,num=0; scanf("%d",&money); for(int fen_5=money/5;fen_5>0;fen_5--){ sum5=money
2021-04-15 18:15:06 138
原创 练习2-12 输出华氏-摄氏温度转换表 (15 分)
难度都没有什么,注意要写成%.6f 而不是空三格#include <stdio.h>int main(){ int lower,upper; float celsius; scanf("%d %d",&lower,&upper); if (lower>upper) printf("Invalid.\n"); else{ printf("fahr celsius\n"); int
2021-04-14 12:25:40 129 1
原创 1034 有理数四则运算 python
没有什么难度,题目本身也没有设置刁难的考察点。但是就很麻烦,细节挺多的。第三个测试点超时了,不管了1.学习了一下fraction库的使用from fractions import Fraction#numerator and denominatordef solve(p): if p.numerator==0: p=0 return p elif p.denominator==1: p=p.numerator if s
2021-04-08 20:58:27 143
原创 1050 螺旋矩阵 (25 分) python
这道题写了非常非常久,主要是不懂数组的基本方法。先输出一个基础数组,后续不断更改其中对应位置的数据,显得省力又轻松。而不是将list来回倒,左右添加元素。这道题第二个关键点是-循环,先输出外围,再输出次外围,以此类推,注意不断改变起始点的位置。注意内围里只有一个元素,一个竖行等个别特殊情况即可。先输出外围,再输出次外围。本来想用迭代的方法,但是数组在函数中的传递,显得并不轻松,不好处理。import matha = int(input())b = [int(i) for i in input().sp
2021-04-06 21:49:58 165
原创 1045 快速排序 (25 分) python
这道题一开始看错了题目,以为是主元(左边都小于主元,右边都大于主元)或者(左边都大于主元,左边都小于主元)两种情况,没想到其实只需要解第一种情况就够了,这样其实简单很多。但是这道题用python写很慢,不能暴力解,需要将算法优化.int比eval好!!这是第一遍写的代码num=eval(input())text=input().split()lis=[text[0],text[-1]]for x in range(1,num-1): xiao=da=False key=True
2021-04-06 21:39:30 241
原创 1049 数列的片段和 python
number=eval(input())text=input().split()plus=0for i in range(0,number): plus+=eval(text[i])*(i+1)*(number-i)print('%.2f' %plus)没什么难度倒还是,只是暴力解超时,这道题不像是编程基本功题目,倒像是简单算法入门题...
2021-03-19 15:12:26 93
原创 1044 火星文
这道题写了非常非常久,不管是思路还是bug都有问题,还有一些语法易错点,但也增长了一些知识debug:1.左边赋值2.想好变量的各种名字,避免变量太多,导致重复定义,出bug3.在使用循环时注意到底是循环索引还是循环文本,在下文引用的时候不要弄混了1.知识点int可以将任意进制的数转换为十进制,其次是用abcd来表示大于十的数2.进制的表示法,循环相除字符串不断加余数,最后右边加余数3.insert可以指定在列表的某处添加元素...
2021-03-17 20:21:48 99
原创 1091 N-自守数 python
data_num=eval(input())def panduan(k): for n in range(1,10): number=str(n*k*k) if number[::-1][:len(str(k))]==str(k)[::-1]: key=n print(f'{n} {number}') break else: print('No')text=li.
2021-03-13 19:58:52 331
原创 1092 最好吃的月饼 python
#18:45-56#统计b个城市数中的每一种月饼最大销量,并输出最大注意并列问题,要输出所有并列月饼text=input().split()food_kind,city_num=eval(text[0]),eval(text[1])lis,lis1=[0 for i in range(food_kind)],[]for p in range(city_num): text=input().split() for i in range(len(text)): l.
2021-03-13 19:02:03 154
原创 1093 字符串A+B python
这道题很简单没有什么难度,无非是加一个伴随iterable,用来判断语句。只是有一个时间复杂度的问题需要注意。lis=[]for p in (input()+input()): if p not in lis: print(p,end='') lis.append(p) 这样的算法时间复杂度为(两倍总输入文本的长度)+(两倍输出文本长度)超时了,于是修改为lis=''for p in (input()+input()): if p not
2021-03-13 18:45:20 193
原创 1053 住房空置率
很简单一道题,没有技术含量#7:31-7:47 18' /输出可能空置(超过一半观察期低于阀值e)和空置比率(观察期超过D一半观察期低于阀值e)/ #注意事项:百分比保留一位小数,没看清题/#debug:eval更好而不是inttext=input().split()number,e,D=eval(text[0]),eval(text[1]),eval(text[2])day1,day2=0,0#首先判定一半观察期低于阀值,其次判定观察期数值for p in range(number):
2021-03-10 19:53:46 71
原创 CHECK
CHECK#16:28-03 13' 题目意思是将指数形式转换为a+bi#注意事项:保留两位小数/考虑在坐标系上,正负号影响#两位数,format %---格式化操作知识点/sincos/int=eval 对数字类型import mathtext=list(map(eval,input().split()))x=text[0]*text[2]y=text[1]+text[3]if x==0: print('0.00+0.00')if (x*(math.sin(y)))<0:
2021-03-10 17:15:31 90
原创 1005 继续(3n+1)猜想
number=int(input())text=list(map(int,input().split()))text1=text[:]text2=text[:]for p in text1: text1=text2[:] text1.remove(p) while int(p)!=1: if p%2==0: p=int(p/2) if p in text1 and p in text: text.remove
2021-03-09 20:55:48 72
原创 1002 写出这个数 python&c语言
一.题目二.题目分析这道题非常简单。主要有二个步骤,第一步将输入数据处理并求和。用for循环遍历求和即可。第二步,将数据对应转化并输出。利用和数据的特性,恰好作为索引,索引列表里的特定数据。输出的时候由于末尾没有空格,使用text.rstrip(‘ ‘)去除末尾空格text=input()num=len(text)con=0text0=['ling','yi','er','san','si','wu','liu','qi','ba','jiu']text1=''for p in text:
2021-03-09 11:14:04 76
原创 1032 挖掘机技术哪家强 python
写了两段代码,都超时也是无fuck说…number,List = input(),{}for i in range(int(number)): text=input().split() if text[0] in List.keys(): List[text[0]]=str(int(List[text[0]])+int(text[1])) else: List[text[0]]=text[1]print(' '.join(max(List
2021-03-08 19:32:42 82
原创 1038 统计同绩学生
题目没有难度,只是最后一个测试点容易超时。换用for循环统计成绩个数不超时,故认识到count()相对耗时间num0=input()text0,text1=input().split(),input().split()num1=text1.pop(0)lis=[]for p in text1: lis.append(str(text0.count(p)))print(' '.join(lis))...
2021-03-07 21:29:08 73
原创 1028 人口普查
代码很简单,最后一个测试点超时,代码也没什么问题,应该是python的问题。number=int(input())lis=[]for i in range(number): text=input().split() text[1]=int(text[1].replace('/','')) if 18140906<=text[1]<=20140906: lis.append(text)if len(lis)>0: lis=sorted(l
2021-03-06 21:34:11 81
原创 1027 打印沙漏
text=input().split()x=text[-1]lis=[]Lis=[]for i in range(0,100): Lis.append(i)number=1while int(text[0])>0: for i in range(1,1000,2): if i==1: text[0]=int(text[0])-1 lis.append(i) elif int(text[0])>(2*i): t
2021-03-06 17:58:36 63
原创 1026 程序运行时间
text=list(map(int,input().split()))number=(text[1]-text[0])/100hh,mm,ss=0,0,0while number>0: if number>=3600: hh+=1 number-=3600 elif number>=60: mm+=1 number-=60 else: ss=int(number+0.5)
2021-03-06 17:04:14 78
原创 1024 科学技术法
import retext=input()fir,text=text[0],text[1:]if re.match(r'\d+(\.)\d+(E\+)\d+',text): text=text.split('E+') text3=text[0].split('.') a=int(text[-1]) if len(text3[-1])>a: text3[-1]=list(text3[-1]) text3[-1].insert(a,'.')
2021-03-06 14:54:45 285
原创 1022 D进制的A+B
这个题目代码没什么难度,就是思路不太好想。注意例如八进制的100=十进制64。100=88=8*8.逢八进一。text=list(map(int,input().split()))a,b=text[0]+text[1],text[-1]def jinzhi(a,b): number='' if a==0: number=0 else: while a!=0: yushu=a%b a=a//b number=s
2021-03-06 12:31:53 77
原创 1021个位数统计
sort 与 sorted 区别:sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。故sorted需要赋值很简单没什么好说的。text=input()text1=list(set(text))text1=sorted(text1,key=lambda x:int(x),reverse=False)
2021-03-05 10:06:52 121 1
原创 Sorted函数
key是排序原则1.如何按照字符串长度,给iterable排序?由于sorted函数默认排序是根据字母排序的,故引入key=len函数即可。A=sorted([‘qw’,’qsx,’x’],key=lambda,reverse=True,x:len(x)A=sorted([‘qw’,’qsx,’x’],key=len,reverse=True2.字典并不会按照输入顺序存储3.dict.items—将字典转为列表形式存储...
2021-03-04 18:04:13 481 1
原创 1020月饼 难
1.这道题主要涉及到排序算法,和前面两道题部分相关,但是还是不会写,应该做一个专题,学习相关知识点,专门训练一下。涉及成绩排序,列表里嵌套列表2.列表里不能有小数3.整型与浮点数—float,int4.思路:利用字典,保存索引5.a={i:c for i in range()}6.’%.2f’ %f7.c=(‘%.2f’ %(a/b)8.sorted(text,key=lambda x:x[0],reverse=True)...
2021-03-04 00:11:03 118 1
原创 一些知识点
字符串拼接:1.‘a’.join(b)—-a为元素之间的分隔符,b为待分割的序列:(可用于输出时的数据处理,元素间有空格,末尾没有)2’%s %s %s’ %(str1,str2,str3)前半部分为字符串,后半部分为索引。%用于引入,s是对象’3.’{}{}{}’.format(str1,str2,str3)与f‘{}{}’括号里为已有变量关于format函数—如果大括号里没有索引,则按默认顺序/大括号里有索引,则format括号为索引。**特别是字典的使用,site与键从字符串变成变量&g
2021-03-02 18:03:32 92
原创 Note
太折磨了,同时也进步了,首先深化split与append认识,其次是sort(lambada)对于列表中列表,列表排序reverse=True降false升。字典中一键多值。如何在字典中加入新的键值对,从键到值,字典中键值对的数量。如何从值返回键,与如何给列表连续命名。de[p]=keys a=[] keys = de[p] for p in range(0,len(dict1)): if list(dict1.values())[p]==keys: a+=list(mydisc
2021-03-01 22:55:51 83
原创 1010 一元多项式求导
经过优化后的代码结构。首先利用input().split()函数处理数据,其次利用for循环,当p为偶数时,如果索引p与p+1的乘积不为零(p不为零,p+1不为零)索引p经过相应变化后,成为索引p。p为奇数时,如果乘积不为零,索引p=p-1。for循环if加空格,elselen(xx)-1就不加。其次是if not 包含00与10两种情况。对于10考虑到另外列表,即可忽略。问题分析:这个代码写了很久,第一个原因是对零多项式,单个常数,多项式中的常数三种情况处理不到位。第二个原因是对‘’,‘ ’,None.
2021-03-01 11:44:47 93
原创 1013 数素数
def zhishu(num): global Num if num >1: for p in range(2,num): if num%p==0: break else: text.append(str(num)) return numtext=[]text0=input().split()text1=''a=0min,max=int(text0[0]),int(text0 [1
2021-02-28 01:00:23 163 1
原创 1003 我要通过 pta 重打
一.题目二.题目分析这道题太坑爹了,首先是对第三个条件理解错误导致写了一堆错的代码,其次是输入例子和输出例子不对应,判断某个数据是否是纯数据也折腾了好久,后来发现是题目理解错了。最后弄完结果代码输出有问题。再者是在自己的编辑器上没问题,输出到pta上测试,测试又失败了。num=int(input())for p in range(num): text = input("") timep,timet,num,nump,numt=0,0,0,-1,-1 for p in text:
2021-02-27 23:17:46 359
空空如也
大佬们,能帮我看看这个代码哪里出问题了吗,晕了呀
2021-04-22
有没有大佬给我讲讲这个为什么会输出这个结果啊
2021-03-11
有没有大佬帮我看看这个代码,明明四五行的代码debug半天找不出来错误.....
2021-03-09
有没有大哥帮我这个滞涨看看这个bug,晕了
2021-03-05
求求了,一个小bug硬是找不出来
2021-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人