fvdcx's blog


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

leetcode-word-break-ii

发表于 2017-01-22   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/word-break-ii/

  接续之前一篇博客,这道题需要输出解的全部可能。

题目分析

  直接用DFS会超时,所以加了记忆化搜索就可以了,我用的是map存储,key为s中的下标,value是所有的String组合的list,map.get(i)的含义是s以i为开始的那个子串的解,要注意一下末尾的处理。

阅读全文 »

leetcode-restore-ip-addresses

发表于 2017-01-21   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/restore-ip-addresses/

  给你一个只含数字的字符串,输出所有的ip地址可能情况。

题目分析

  简单的DFS,注意一下边界条件,递归时注意分三种情况,地址是3位,2位,1位整数进行枚举

阅读全文 »

leetcode-mini-parser

发表于 2017-01-21   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/mini-parser/

  实现一个反序列化的程序,反序列化一个含有数字及其嵌套的list。

题目分析

  细节实现题,我用了递归,注意找匹配左[的右 ]用到了栈。

阅读全文 »

leetcode-repeated-substring-pattern

发表于 2017-01-20   |   分类于 算法 , leetcode   |  

题目大意

  https://leetcode.com/problems/repeated-substring-pattern/

  判断字符串是否由其子串重复叠加拼接而成的

题目分析

  利用kmp算法的构建辅助数组,可以回忆一下kmp算法中辅助数组含义是最长相同前缀和后缀。但是lps数组跟本题的关系是什么呢?考虑一下lps数组的最后一个值,最后一个代表整个字符串的最长前缀和后缀,如果等于0,那么一定得返回false。而且还要满足m % (m - lps[m - 1]) == 0,m - lps[m - 1]含义是除了最长前缀的后面的部分,如果字符串是重复一个字符串拼接多次而成,那么m - lps[m - 1]就是单独的一个“重复单元”,一定可以整除m。

阅读全文 »
1…101112…38
fvdcx

fvdcx

149 日志
14 分类
20 标签
GitHub
© 2015 - 2017 fvdcx
由 Hexo 强力驱动
主题 - NexT.Pisces