ARTS打卡第2周
Given an input string (s
) and a pattern (p
), implement regular expression matching with support for '.'
and '*'
.
'.' Matches any single character. '*' Matches zero or more of the preceding element.
The matching should cover the entire input string (not partial).
Note:
s
could be empty and contains only lowercase lettersa-z
.p
could be empty and contains only lowercase lettersa-z
, and characters like.
or*
.
解析:判断一个字符串s能否使用一个pattern进行解析,其中'.'表示任何从a-z的字符,'*'表示前一个字符出现的次数
思路:根据pattern的第一个字符是否和s匹配,如果不匹配,判断pattern 第二个字符是否为*,为* 可以表示前一个字符出现0次,去除前两个字符重新与s进行匹配,
如果匹配可以根据第二位是否为*,有pattern 去除前两个字符的分支和s去除第一个字符的分支
第二位不为*则pattern和s都去除第一个字符进行下一轮匹配的分支,有多种分支所以采用递归来解决当前问题,直到s和pattern同时为空时返回匹配。
解决方案:https://leetcode.com/submissions/detail/218690156/
R:https://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ java程序员常犯的10个错误,
1.关于如何将数组转换成java.util.ArrayList(List<String> list = new ArrayList<String>(Arrays.asList(arr));)而不是java.util.Arrays.ArrayList class(List<String> list = Arrays.asList(arr);)
2.如何查找数组中是否包含某个元素,将数组转换成java.util.Arrays.ArrayList class 使用其中的contains方法
3.如何删除数组中的指定的元素,使用迭代器Iterator的next方法来控制数据遍历,使用remove方法删除对应的元素,直接使用list遍历删除会抛出ConcurrentModificationException的异常
4.Hashtable 和HashMap的区别,Hashtable是线程安全的,同步的
5.List中添加一个原始集合类型的数据,运行是会有问题
6.关于一个类中的方法和属性的权限的开放的方法和准则
7.ArrayList 和LinkedList的使用场景
8.关于父类和子类的构造方法的问题,子类的构造方法,父类中也需要有
9.可变对象和不可变对象的使用场景
10.关于字符串直接赋值和创建一个新的对象的区别
T:分享如何通过java和WCF接口进行交互,使用对应的wsdl地址生成对应的客户端代码,使用eclipse的WebserviceClient通过axis的方式生成客户端代码由于wsdl的格式不匹配,
无法生成对应的代码,最终通过jdk自带的wsimport -s 文件夹名称 wsdl地址来生成对应的代码,结果很顺利,未踩坑。
S:极客新闻:《技术人员应该停止学习框架,专注基础知识》,谈了关于框架和基础知识之间的取舍,基础知识是技术提高的基础,掌握了基础知识可以快速的了解新技术和新框架,
不盲目把时间都花在新的框架上,要多花时间在基础知识的掌握上,不同框架是对基础知识的不同的运用,不会跳出基础知识的范畴。