
基础算法
zuokuijun
这个作者很懒,什么都没留下…
展开
-
KMP算法总结
KMP算法给定两个字符串S1,S2,其长度分别为M和N,且M>N;判断S1中是否存在S2,若存在则返回S2在S1中第一个字符的索引位置,否则直接返回-1。首先获取子串的最长前缀与最长后缀数组每个数组的数值分别与子串中每个字符相对应,表示该字符最长前缀与最长后缀的大小,并且最长前缀不能包括最后一个字符,最长后缀不能包括第一个字符;对于一个字符而言,第一个字符对应的数值为-1,第二个数值对应...原创 2019-08-01 21:34:46 · 116 阅读 · 0 评论 -
Manacher Algorithm
Manacher算法总结求解一个字符串中的最长回文子串。传统的计算方法由于很难对偶回文的情况进行计算,因此为了解决该问题,可以将字符串每个字符的前面添加任意一个字符,来解决奇回文以及偶回文的问题。给初始子串加入特殊字符public static char[] addChar(String s1) { char[] chr1 = s1.toCharArray(); char[] ...原创 2019-08-01 21:41:59 · 144 阅读 · 0 评论 -
记一道华为实习笔试题
题目要求:给定一个字符串,字符串包括数字、大小写字母以及括号(包括大括号、中括号以及小括号),括号可以嵌套,即括号里面可以出现数字和括号。按照如下规则对字符串进行展开,不需要考虑括号成对不匹配的问题,用例保证括号匹配,同时用例保证每个数字后面都有括号,不用考虑数字后面没有括号的这种情况,即2a2(b)这种情况不用考虑。1)数字表示括号里的字符串重复的次数,展开后的字符串不包含括号;2)将字符...原创 2019-08-20 19:59:08 · 627 阅读 · 0 评论