48天训练
文章平均质量分 51
连续48天训练
penguin_bark
坚持写好文
展开
-
笔试强训day42(解读密码, 走迷宫)
【代码】笔试强训day42(解读密码, 走迷宫)原创 2022-11-12 16:35:25 · 159 阅读 · 0 评论 -
笔试强训day41(五子棋,后缀表达式)
得到整个棋盘之后,循环判断每个位置如果是"."就下一个,其他的就是棋子,需要从该位置开始,向右五个位置或者右下五个位置或者下五个位置或者左下五个位置判断是否有五个,如果有就返回yes否则返回no。利用栈存放数据,遇到运算符就取出运算,最后返回值即可。原创 2022-11-12 16:24:14 · 168 阅读 · 0 评论 -
笔试强训day40(发邮件,最长上升子序列)
第二题-最长上升子序列原创 2022-11-09 17:07:59 · 106 阅读 · 0 评论 -
笔试强训day39(字符串计数,最长公共子序列)
若str1[i-1]!= str2[j-1],则 dp[i][j] = max( dp[i-1][j], dp[i][j-1] )若str1[i-1] == str2[j-1],则 dp[i][j] = dp[i-1][j-1]+1。原创 2022-11-09 10:45:18 · 133 阅读 · 0 评论 -
笔试强训day38(蘑菇阵,红与黑)
【代码】笔试强训day38(蘑菇阵,红与黑)原创 2022-11-07 21:02:07 · 190 阅读 · 0 评论 -
笔试强训day37(mkdir,数据库连接池)
【代码】笔试强训day37(mkdir,数据库连接池)原创 2022-11-07 20:55:37 · 427 阅读 · 2 评论 -
笔试强训day36(Pre-Post,Rational Arithmetic)
day36原创 2022-11-07 20:47:48 · 144 阅读 · 0 评论 -
笔试强训day35(抄送列表,年会抽奖)
分别用两个字符串str和sub分别接收列表和要查找的姓名,遍历str,遇到引号,则继续查找下一个引号出现的位置,然后将引号中间的字符串拷贝到vector当中,没有遇到引号,如果找到尾,则将下一次逗号出现的位置记录,将两个逗号中间的字符串拷贝到vector当中,如果到头了,则直接将最后一个字符串拷贝到vector当中,用sub到vector中寻找是否符合。find(),第一第二个参数控制,寻找的范围(用迭代器),第三个参数是要寻找的字符串,返回值是迭代器,具体使用看代码。原创 2022-11-05 18:02:20 · 150 阅读 · 0 评论 -
笔试强训day34(养兔子,收件人列表)
【代码】笔试强训day34(养兔子,收件人列表)原创 2022-11-02 19:41:59 · 141 阅读 · 0 评论 -
笔试强训day33(客似云来,剪花布条)
32day原创 2022-11-02 10:42:32 · 125 阅读 · 0 评论 -
笔试强训day32(淘宝网店,斐波那契凤尾)
首先判断同一个月中天数的差异,同一年中月份的差异,不同年份差异,总共有9种情况,分开来讨论。原创 2022-10-31 20:08:45 · 120 阅读 · 0 评论 -
笔试强训day31(分解因数,美国节日)
思路:有两种情况,当输入的是素数时,那么此素数只有1和它本身,当输入的不是素数时,遍历寻找此数的素数,当遇到素数时,存起来并且将处理n。原创 2022-10-31 12:27:52 · 572 阅读 · 0 评论 -
笔试强训day30(最难问题,因子个数)
思路:将每个大写字母倒退五个即可,正常如果大于等于F正常倒退,否则要向前前进21个构成循环。原创 2022-10-21 17:12:32 · 142 阅读 · 2 评论 -
笔试强训day29(最小组成和+猜硬币)
如果n % 3 == 2,分成 n/3、 1 + (n/3)、1 + (n/3)三堆,最坏剩下 1 + (n/3)如果n % 3 == 1,分成 n/3、 n/3、1 + (n/3)三堆,最坏剩下 1 + (n/3)当n = 7时,分成2、2、3,天平先称2、2,考虑最坏的情况,重量相等,接着我们就需要。当n = 5时,分成2、2、1,天平秤2、2,同样考虑最坏的情况,2、2重量相等,当n = 6时,分成2、2、2,天平秤2、2,同样考虑最坏的情况,不管如何,还需要。接着我们把2分开称,总共需要2次。原创 2022-10-21 08:43:08 · 300 阅读 · 0 评论 -
笔试强训day28(猴子分桃,反转部分单向列表)
123原创 2022-10-20 09:05:43 · 286 阅读 · 0 评论 -
笔试强训day27(三角形,不用加减乘除做加法)
首先用异或计算没有进位的加法,然后用按位与和在向左移动一位计算出进位,之后循环直到进位为0结束。原创 2022-10-18 19:06:24 · 120 阅读 · 0 评论 -
笔试强训day26(变态跳台阶,快到碗里来)
拒绝递归调用,根据规律发现,如果n=1,则只有一种,如果n>=2,则返回2*(n-1),进一步推导就是2^(n-1)原创 2022-10-18 14:49:51 · 121 阅读 · 0 评论 -
笔试强训day25(数根,星际密码)
为防止超出范围,所以用字符串接收,只有将字符串的每一位加起来存放到sum,循环判断是否为一位数。原创 2022-10-18 14:29:54 · 120 阅读 · 0 评论 -
笔试强训day24(年终奖、迷宫问题)
首先将所有的数组存放到maze中,然后从左上角开始寻找走过的地方标志为1,并且将走过的路径存放到tmp中,之后判断如果走到头了,则将tmp给best,没有到头就上下左右走,直到遇到1开始回溯。原创 2022-10-15 09:09:56 · 235 阅读 · 0 评论 -
笔试强训day23(微信红包,计算字符串的距离)
答案:归并排序思路:归并排序是外部排序。原创 2022-10-14 15:31:31 · 195 阅读 · 1 评论 -
笔试强训day22(第一个只出现一次的字符,小易的升级之路)
用哈希表,遍历字符串将每个字符映射到哈希表中,然后再次遍历哈希表,找出第一个只出现一次的字符,如果找到就返回该字符,如果没有找到就返回-1。将所有怪兽接收后,如果当前能力大于或等于怪兽则直接相加,如果当前能力小于怪兽则用辗转相除法求出最大公约数来增加能力。将上面数据插入到哈希表中是这样的,上面蓝字表示需要映射的次数,平均查找长度,将所有映射次数加起来除以元素个数即可。原创 2022-10-14 14:15:42 · 144 阅读 · 0 评论 -
笔试强训day21(洗牌,MP3光标位置)
思路:收先确定输入组数,然后确定每组数据大小,然后将每组数据依次存放到card中,之后洗牌按照规律 card[2*j] = tmp[j];最后输出。原创 2022-10-12 08:55:38 · 98 阅读 · 1 评论 -
笔试强训day20(字符串翻转, 公共子串计算)
本题使用动态规划, 当以前的问题等于上一个问题的答案加一,我用max_size记录返回字符串的长度。原创 2022-10-11 13:46:24 · 241 阅读 · 0 评论 -
笔试强训day19(汽水瓶,最长公共子串)
循环计算汽水瓶消耗,同时计算喝了多少瓶汽水,注意的是如果最后汽水瓶最后剩两个,此时可以借一个汽水瓶,所以此时要多算一个汽水瓶。本题使用动态规划, 当以前的问题等于上一个问题的答案加一,我们用start记录返回字符串的起始位置,用max_size记录返回字符串的长度。原创 2022-10-10 16:53:23 · 197 阅读 · 0 评论 -
笔试强训day18(字符串通配符,统计每月兔子总数)
思路:利用递归的方法依次遍历字符串,如果两个字符串都为空,说明走完了。返回true,如果只有一个为空,说明不匹配,返回false,如果遇到?则跳过,如果遇到*,可能不要匹配,可能只要匹配一个字符,或者匹配多个字符。原创 2022-10-02 09:10:52 · 172 阅读 · 0 评论 -
笔试强训day17(杨辉三角的变形,计算某字符出现的次数)
先将一个子类构造之后给父类指针然后析构指针,首先在构造函数中是无法调用虚函数的,因为构造函数没有完成,则不会生成虚表,多态不起作用,所以我们new B,由于B有父类所以会构造父类,然后构造子类,析构也是先析构子类然后析构父类,但是在析构父类的时候调用的是子类函数,但是子类已经被释放了,所以父类只会调用父类析构。根据杨辉三角的规律,当行数是1或者2时,返回-1,行数是3返回2,行数是4返回3,行数是5返回2,行数是6返回4,行数是7返回2,总结,除了第一二行返回-1,其余后面的返回规律是2324。原创 2022-10-01 16:41:05 · 166 阅读 · 0 评论 -
笔试强训day16(扑克牌大小,完全数计算)
首先第一行Test obj(5, 10),将a和b初始化为5和10,之后将指针pInt解引用后赋值,由于存在虚函数,所以类的第一个位置存放的是虚函数指针,所以第一个赋值100是给虚函数,第二个赋值200是给b。创建子类对象stDerived,用父类指针指向stDerived,输出第一个是调用子类函数,第二个,由于传送的是指针并且,没有调用虚函数,所以最后结果是100*20+4+10。首先B是私有继承A,此时A中的函数在B中是私有的,C是公有继承B,但是C无法访问B中的私有函数。原创 2022-09-28 21:16:10 · 218 阅读 · 0 评论 -
笔试强训day15(手套,查找输入整数二进制中1的个数)
正确来说会输出A,但是程序会崩溃,首先构造B之前会先构造A,构造A的时候A里面没有虚函数,所以不会有虚表,B里面有虚函数就会有虚表,虚表指针会放在所有子类的第一个成员,但是指针又会存活于父类部分,最后在释放的时候,父类部分没有找到虚表指针,所以崩溃,解决办法,在父类存在一个虚函数,有虚表。首先构造子类B之前会构造父类A,但是再构造函数的时候不会执行多态,虚表没有构造完成,所以会执行父类A的函数,然后foo不是虚函数,也是执行父类A,bar是虚函数,子类重写,调用子类bar。答案: 121414。原创 2022-09-28 18:08:17 · 112 阅读 · 0 评论 -
笔试强训day14(幸运的袋子,计算日期到天数的转换)
答案:B0 : :displayoB0 : :displayoB0: :displayo思路:首先创建三个不同类型的对象,然后调用fun,由于fun在编译阶段就完成了,所以和虚函数没有关系,只会调用父类函数。原创 2022-09-28 12:13:32 · 154 阅读 · 0 评论 -
笔试强训day13(跳石板,参数解析)
首先将存储一行的字符串依次遍历,然后判断是否为' " ',如果是引号则空格不能跳过,否则遇到空格跳过同时将存储的字符串计数统计,最后记得将最后一组数据放到vector中。主要依赖于继承方式,继承方式可以是私有,此时不能访问父类。2.子类对象地址可以赋值给父类对象的指针。1.子类对象可以赋值给父类对象。3.父类对象可以引用子类对象。原创 2022-09-26 17:21:01 · 184 阅读 · 0 评论 -
笔试强训day12(二进制插入,查找组成一个偶数最接近的两个素数)
首先取输入数据的中间值,然后从中间值开始依次判断是否为素数,如果不是那么其中一个中间值减1,另一个中间值加1.首先将m的每一位都取出来,然后将每一位移动到n中对应的位置,需要执行m的长度次。2.析构函数作用,对象销毁时,释放对象中的资源,但不是所有的对象都是从堆上new出来的。1.不能在析构函数中delete this,如果这样做,代码可以编译但是运行会崩溃。是指质数,一个大于1的自然数,除了1 和它自身外,不能整除其他自然数的数叫做质数。原创 2022-09-24 15:39:58 · 162 阅读 · 1 评论 -
笔试强训day11(最近公共祖先,求最大连续bit数)
答案:5前面a,b创建两个对象,c中包含3个对象,所以构造三次,p是指针数组,存放两个地址,不会调用构造函数。原创 2022-09-23 10:19:19 · 137 阅读 · 0 评论 -
笔试强训day10(密码强度等级,井字棋)
答案:a = 10, *p = 20思路:C++中被const修饰的变量,该变量已经不是一个常量了,还具有替换作用,编译器在编译代码,在程序中看到对常量中内容读取时,会直接使用常量中的内容替换该常量。原创 2022-09-22 09:44:56 · 269 阅读 · 0 评论 -
笔试强训day09(求路径总数,另类加法)
两个数异或取到着两个数的相加的数据,除去进位数,两个数相与再左移一位获得两个数的进位,递归循环直到有一个数据为0,则返回另外一个数据即可。利用递归的思想每走一步就会遇到两个选择,所以依次递归,直到走到边界停止。new只能申请单个字节的空间,ddelete只能释放单个字节的空间。1.调用operator new[](size)申请空间。2.调用operator delete[]()P释放空间。1.调用N次析构函数释放p指向的N个对象。上面构造ClassA[5]调用5次构造。delete[] 则嗲用5次析构。原创 2022-09-21 08:43:13 · 137 阅读 · 0 评论 -
笔试强训day08(求最小公倍数、两种排序方法)
思路:两个数的最小公倍数就是,两个数相乘,然后除以两个数的最小公约数,最小公约数的求法是,辗转相除法。原创 2022-09-20 09:20:34 · 160 阅读 · 0 评论 -
笔试强训day07(斐波那契数、合法括号序列判断)
首先3+3直接调用正常+,然后由于operator+中第一个参数是this,然后3没有对应的this指针。原创 2022-09-19 09:20:22 · 166 阅读 · 0 评论 -
笔试强训day06(不要二、字符串转整数)
换算成下标的话,如果在[i][j]位置放蛋糕的话,那么[i][j+2]和[i+2][j]位置都不能够放蛋糕。首先所有下标都是整数可能的组合有0+4,1+3,2+2,其中2+2,1+3都不符合,因为没有根号,其次都是正数,所以只有0+4符合标准,说明两种情况。根据题目给的公式(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) = 4,不能等于2,说明不能在符合这个公式里面的位置放蛋糕。首先判断第一个字符是否是+-,如果是,则将第一个字符都转化成'0’,便于后续遍历。原创 2022-09-18 11:11:15 · 143 阅读 · 0 评论 -
笔试强训day05(统计回文,连续最大和)
a算完后,结构体已经有了一个大小size,然后计算能否被min(改结构体成员最大类型所占字节数,对齐参数)整除,如果可以则对齐,否则需要在结构体最后补充一些自己二,将size增加到min的最小整数倍。2.对于其余成员,该成员子结构体中的偏移量能否被min(该成员类型大小,对齐参数)整除,如果可以在对齐的地址上,如果不可以在改成员之前补充一些字节,补到偏移量刚好可以倍min整除。1.第一个成员使用在对其的地址上,编译器自动识别。1.找到合适的位置插入。答案:16 16,16 24。原创 2022-09-09 09:31:25 · 153 阅读 · 0 评论 -
笔试强训day04(计算糖果,进制转换)
我们由四个式子分别求出ABC,A = (a+c)/2,B1 = (c-a)/2,B2 = (b+d)/2,C = (d-b)/2,此时我们只要判断这两个数是否相等。数组名表示首元素地址,只有&sizeof之后才表示数组本身,所以++m跳过的是一个元素,然后将这个元素打印出来。首先记录m是否为0和m的正负数,之后通过table将m中每一位存储到s当中,最后翻转输出s即可。%o是八进制输出形式,所以m直接输出123,n需要转化成八进制然后输出。答案:afternoon。答案:123 173。原创 2022-09-08 09:43:11 · 202 阅读 · 0 评论 -
笔试强训day03(字符串中找出连续最长的数字串,超过长度一半的数字)
定义一个临时字符串cur和最后返回字符串ret,依次遍历str,将遇到的数字串整个放到cur中,整个数字串结束后将cur与ret中数字串长度对比,如果cur长度比ret长则将cur中数字串拷贝到ret中,否则就清空cur中的数字串。函数栈帧是从高地址向低地址开辟的,并且调用printf函数时从右向左入栈,所以c最先入栈,然后打印方式是%d(一次打印四个字节),所以获取方式如下。2.依次比较两个数,如果两个数不相等就消去这两个数,每次消去一个众数和一个非众数,如果存在众数,那么最后留下来的就是众数。原创 2022-09-07 10:11:16 · 178 阅读 · 0 评论