- 博客(21)
- 收藏
- 关注
原创 【python】python批量重命名文件
从1开始批量重命名指定文件夹中的所有文件#批量重命名文件import ospath = "/Users/……" #放图片的文件夹index_no = 1for file in os.listdir(path): imagepath = os.path.join(path, file) newname = str(index_no) + '.jpg' newimagename = os.path.join(path, newname) os.rename(image
2022-03-22 22:54:47 1572
原创 [面试题]3种方法统计二进制数中1的个数
解题思路方法二基于一个事实:x&(x-1)每做一次位“与”操作就能去除x的最低一位1。例如:x=1100 1000 1001 0100;x-1=1100 1000 1001 0011;x&(x-1)=1100 1000 1001 0000;所以方法二的循环次数即为该二进制数中1的位数方法三:哈希表:h[i]表示i的二进制形式中1的位数先对n的最低4位和0xf(即二进制的1111)进行位与运算,计算出的结果通过查找哈希表得到最低4位中1的位数。循环8次,每次向高位移动4位进行判
2021-02-21 15:49:35 501
原创 PAT 1139. First Contact (30)-PAT甲级真题
思路参考:From柳神一开始没考虑到(2、4)参考柳神的注意点后修改的代码。1.用unordered_map<string, set > mp来表示邻接表(使用unordered_map比map时间复杂度小,不过使用map也可以AC)2.A在寻找同性朋友时,需要避免找到他想要的伴侣B,所以当当前朋友就是B或者B的同性朋友就是A时舍弃该结果3.输出时候要以4位数的方式输出,所以要%04d4.如果用int接收一对朋友,-0000和0000对于int来说都是0,将无法得知这个人的性别,也就会
2021-02-13 11:38:33 315
原创 1119. Pre- and Post-order Traversals (30)-PAT甲级真题(前序后序转中序)
参考:1.b站https://www.bilibili.com/video/BV1Mt4y197kC?t=814&p=1192.柳神代码https://liuchuo.blog.csdn.net/article/details/52505179关键点:1.先序遍历根节点的左子树根节点(若存在)则一定在根节点的后一位,而后序遍历中该节点一定在根节点左子树序列的最右边(解释:因为该节点是左子树结点的根节点,先序:根左右,后序:左右根。所以在先序中左子树序列中第一位。在后序中左子树序列最后一位)
2021-02-09 19:38:58 200
原创 [动态规划,矩形嵌套]有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)
矩形嵌套时间限制: 3000 ms | 内存限制: 65535 KB难度: 4描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。输入第一行是一个正正数N(0<N<10),表示测试数据组数,
2021-01-31 16:29:29 1868
原创 【PAT】B1025. 反转链表 (25)
给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(<= 10^5)、以及正整数K(<=N),即要求反转的子链结点的个数。结点的地址是5位非负整数,NULL地址用-1表示。接下来有N行,每行格式为:Address Data Nex
2021-01-20 16:28:28 106
原创 类和对象
#include<iostream>#include<cmath>#include<string>using namespace std;class Person{ //全局函数作友元 friend void test01(); friend ostream& operator<<(ostream &cout, Person &p);public: Person(){//无参构造函数 } Person(i
2021-01-17 17:27:41 70
原创 【PAT/two pointers/二分法】1044 Shopping in Mars (25分)
题目:Sample Input 1:16 153 2 1 5 4 6 8 7 16 10 15 11 9 12 14 13Sample Output 1:1-54-67-811-11Sample Input 2:5 132 4 5 7 9Sample Output 2:2-44-5方法一:(two pointers)可以设置两个变量j和k,计算[j,k]之间所有数(一定是正整数)的和sum。要求出所有的sum等于s的所有整数对j,k。令j,k初值均为1,即从左往右遍历数组。当此
2021-01-13 09:13:41 106
原创 [c++,递归]问题 C: 神奇的口袋
问题描述:有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入:输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的
2021-01-11 17:22:00 230
原创 【PAT B1010】 一元多项式求导 (25分)
设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0//该方法比《算法笔记》上的要简单#include<cstdio>int main(){ int
2021-01-08 11:46:09 125
原创 定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出
考点:结构体数组,指针,字符串定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出。结构体student的定义如下:struct student {int num;char name[20];char sex;int age;};本题要求使用指向结构体数组的指针进行输入和输出。注意点(重点):当要连续输入一个字符串和一个字符时,输入前一个字符串后的空格既标识了前一个字符串输入结束,又被后一个字符所吸收,所以要在两者之间加一个getc
2021-01-07 11:38:42 42671 2
原创 【算法笔记2.8】完成一个对候选人得票的统计程序。假设有3个候选人,名字分别为Li,Zhang和Fun。使用结构体存储每一个候选人的名字和得票数。记录每一张选票的得票人名,输出每个候选人最终的得票数。
题目:完成一个对候选人得票的统计程序。假设有3个候选人,名字分别为Li,Zhang和Fun。使用结构体存储每一个候选人的名字和得票数。记录每一张选票的得票人名,输出每个候选人最终的得票数。结构体可以定义成如下的格式:struct person {char name[20];int count;}leader[3] = {“Li”, 0, “Zhang”, 0, “Fun”, 0};样例输入:10LiLiFunZhangZhangFunLiFunZhangLi样例输出:L
2021-01-07 10:28:02 2016
原创 从键盘上输入10名学生的姓名及三科考试成绩和总成绩,排序并输出(c语言结构体)
编写程序:从键盘上输入10名学生的姓名及三科考试成绩和总成绩,排序并输出。具体要求:① 使用结构体数组实现。② 用户自定义函数输入学生的信息和输出结果;③ 自定义函数排序④ 在main函数中调用这些函数#include<stdio.h>int i,j;#define N 10struct stu{ char name[5]; int sco[3]; int su...
2019-11-04 21:47:57 11639
原创 最大公约数和最小公倍数(c语言辗转相除法)
辗转相除法#include<stdio.h>int temp;int gys(int m,int n)//最小公约数{ while(m%n!=0) { temp=m%n; m=n; n=temp; } return n;}int gbs(int m,int n)//最大公倍数{ int k; k=m*n/gys(m,n); return k;...
2019-11-03 19:02:40 430
原创 将一个整数的每一个数位分解出来并逆序输出c语言递归
编写递归程序:实现将一个整数的每一个数位分解出来并逆序输出。例如:输入的整数为:3675输出的结果为:5 7 6 3具体要求:① 转换过程通过编写递归函数实现;② 在主函数输入要转换的整数n,且n可是以任意整数。#include<stdio.h>void digit(int n){ if(n!=0) { printf("%d ",n%...
2019-11-03 18:42:18 5577
原创 编程找出1000以内最小的10个素数与最大的10个素数,输出这20个素数及这20个素数之和
编程找出1000以内最小的10个素数与最大的10个素数,输出这20个素数及这20个素数之和。具体输出形式为:最小素数 :素数1,素数2,……,素数10最大素数 :素数1,素数2,……,素数10素数之和 :和的具体值#include<stdio.h>int main(){ int sum=0; int i,a,l,x=0; printf("最小素数:"); for(...
2019-11-03 17:16:00 7374 4
原创 连接两个字符串(c语言)
利用两种方法实现连接两个字符串。方法1:利用C语言的库函数strcat()来实现两个字符串的连接。方法2:不允许使用连接函数strcat(),即自己编写程序将字符串2中的字符逐个复制到字符串1的后面,从而实现字符串的连接功能。方法一:#include<stdio.h>#include<string.h>int main(){ char str1[50],st...
2019-11-03 16:16:07 118104 7
原创 从键盘上输入一个4×4整数矩阵,以主对角线为对称轴,将左下角的每一个数组元素与对应的右上角的数据元素进行比较(例如a[2][1]与a[1][2]进行比较),将其中的较大者送入右上角对应位置,最后输出该
从键盘上输入一个4×4整数矩阵,以主对角线为对称轴,将左下角的每一个数组元素与对应的右上角的数据元素进行比较(例如a[2][1]与a[1][2]进行比较),将其中的较大者送入右上角对应位置,最后输出该矩阵所有的右上角元素(含对角线上的数据)。#include<stdio.h>#include<string.h>int main(){ int a[4][4]; i...
2019-11-03 14:29:42 10075
原创 统计字符串中数字字符、字母字符、其他字符数量c语言
从键盘输入一个字符串,用字符数组存放,要求统计出其中字母字符、数字字符和其他字符的个数以及字符串长度。例如:从键盘输入的字符串:abcd123a4WE$$$12***程序的输出结果为:字符串长度=19 字母=7 数字=6 其他=6#include<stdio.h>#include<string.h>int main(){ char a[5...
2019-11-03 13:44:43 19924 2
原创 选择排序和冒泡排序,c语言实现
选择排序和冒泡排序,c语言实现#include<stdio.h>//输入10个整数,先用选择排序从小到大排序,再用,冒泡排序从大到小排序int i,j,temp;//选择排序void xuanzepaixu(int *a,int len){ for(i=0;i<len;i++) { for(j=i+1;j<len;j++) { if(a[j]&...
2019-11-03 11:30:26 376
原创 词法分析器C++读取外部txt(编译原理)
词法分析器C++实现编译原理词法分析器的参考文章:https://blog.csdn.net/qq_32623363/article/details/79911321)在原文章的基础上,我加入了关键字的识别,并将词法分析器设计为一个独立的程序,从文件中读取源程序,将其变换成相应的符号序列;c++读取txt文件的参考文章https://blog.csdn.net/m0_38033475/ar...
2019-10-19 19:33:04 2300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人