- 算法题1道 hash表相关的,判断一个字符串是否可以用另外一个字符串里面的字符组成。当遇到需要快速查找或者大量查找的问题考虑使用Hash表,然后字母总共就26个通常可以通过数组+数组下标来实现hash表。用
s.charCodeAt(i)-'a'.charCodeAt(1)
来确定下标。Array.prototype.forEach
方法的实现,主要是this
的改变,使用call
函数可以改变参数(函数)的this指向。写这种函数都需要首先判断传进来的参数是否符合要求,比如callback
是否是回调函数,总共穿了几个参数arguments.length
长度判断。Array.prototype.reduce
方法实现,需要判断是否传入了初始值,没有传入就是用数组第一个值,数组长度也要判断,为0就直接返回。- 贝壳找房前端实习笔试,总共四道题,两道70%;oj输入输出比之前要熟练很多了。
- 论文:分析PCPF,CICPF原理。
- 明天开始仿真实现CPF?
- 确定CPF仿真实现的思路,如何实现。
- next
——>
阅读时频工具箱提供的tfrwv函数,参考编写信号CPF实现代码。
- 算法题:三数之和 四数之和都用双指针解决
nums[i]+nums[j]+nums[left]+nums[right]
,字符串相关专题,字符串数组的反转,字符串间隔2k个反转前k个。- TypeScript学习,为什么会有TypeScript,TypeScript相比JS有什么区别,JS太灵活,比如变量没有类型,可以赋值数字类型也可以赋值字符串类型,这样在有的代码中会有问题但是JS又不会报错,我的初步理解是TypeScript是需要受一定约束的JS。
a=12; a='str';
- WVD仿真实现。对横坐标,纵坐标的理解,以及对应实际值。参考
- 算法题:替换字符串里面的空格,可以先对数组扩充然后使用双指针把原来的往后移动,遇到空格替换;翻转字符里面的单词;当字符串反转,但是又要保持里面的局部字符串顺序不变,可以考虑反转两次,比如局部反转一次再整体反转一次;
- 听了一个小时的公开直播课;
- TypeScript学习,搭建ts坏境,.ts文件需要编译为.js文件浏览器才能识别;TypeScript种变量的类型,有一些我们熟悉的也有一些之前没有接触过的,为变量定义指定类型,也可以为函数参数 函数返回值指定类型;注意区分any 和unknown类型;
- 实现WVD代码,但是还未弄清楚实现原理以及对应的CPF代码思路。
- 算法题:3道。KMP算法原理,KMP算法判断字符串在另一个字符串中的起始位置,前缀next数组算法思路;字母异位字符串分组,用Hash表去做,可以对字符串数组中的每一个字符串进行排序,然后用排序后的字符串做map的键,值为一个数组;字符串是否可以由自己的字串重复组成,这个也是用KMP算法判断,主要还是Next数组。len时数组长度当len-(next[len-1]+1)可以被len整除且next[len-1]!==-1的时候就是字符串可以由自己的子字符串重复组成。
- TypeScript学习:对象属性的规定,函数结构的规定、数组类型声明、元组(固定长度的数组的声明)、枚举、类型别名;TS编译坏境的熟悉,tsconfig.json文件相关配置、tsc 文件名 -w实现实时更新文件,但是不能更新所有.ts文件,所以需要tsconfig.json文件配置相关参数。
- 仿真实现AF算法 。
- 明天继续论文阅读,以及完成周汇报文档,改进算法研究。CPF实现原理FFT实现代码。
- 算法1题:使用双栈模拟队列;
- TypeScript使用坏境配置,webpack配置,为了解决兼容性babel配置。
- 整理中期答辩材料准备给老师签字;
- LVD算法复习,重新阅读论文SET(未完成)。
- 算法题:3道 有关栈的提醒 匹配的括号,考虑失配的三种情况,把右边的入栈情况代码更加简单;删除字符串中相邻的重复字符;计算机处理算数运算,逆波兰表达式求值;
- 在SET的基础上提出的SEST算法分析,S变换结合SET,在单分量LFM信号和不相交的多分量LFM信号表现都还ok,但是相交的多分量不合适,所以论文的作者针对相交的多分量LFM信号提出了新的方法。