随笔分类 -  String/ 字符操作/字典顺序

摘要:这道题属于纯粹的字符串操作,要把一串单词安排成多行限定长度的字符串。主要难点在于空格的安排,首先每个单词之间必须有空格隔开,而当当前行放不下更多的单词并且字符又不能填满长度L时,我们要把空格均匀的填充在单词之间。如果剩余的空格量刚好是间隔倍数那么就均匀分配即可,否则还必须把多的一个空格放到前面的间隔 阅读全文
posted @ 2017-08-30 11:44 apanda009 阅读(520) 评论(0) 推荐(0)
摘要:字符串匹配的问题应该最先想到dp, 主要还是说一下动态规划的方法。跟Regular Expression Matching一样,还是维护一个假设我们维护一个布尔数组res[i],代表s的前i个字符和p的前j个字符是否匹配(这里因为每次i的结果只依赖于j-1的结果,所以不需要二维数组,只需要一个一维数 阅读全文
posted @ 2017-08-19 20:40 apanda009 阅读(157) 评论(0) 推荐(0)
摘要:The idea is try to replace every "++" in the current string s to "--" and see if the opponent has the chance to win or not, if the opponent is guarant 阅读全文
posted @ 2017-08-19 10:43 apanda009 阅读(170) 评论(0) 推荐(0)
摘要:You are playing the following Flip Game with your friend: Given a string that contains only these two characters: + and -, you and your friend take turns to flip two consecutive "++" into "--". The g... 阅读全文
posted @ 2017-08-19 09:09 apanda009 阅读(132) 评论(0) 推荐(0)
摘要:这道题还是对于Integer的处理,在Reverse Integer这道题中我有提到,这种题的考察重点并不在于问题本身,而是要注意corner case的处理,整数一般有两点,一个是正负符号问题,另一个是整数越界问题。思路比较简单,就是先去掉多余的空格字符,然后读符号(注意正负号都有可能,也有可能没 阅读全文
posted @ 2017-08-11 09:44 apanda009 阅读(218) 评论(0) 推荐(0)
摘要:找规律? 我们通过举一些正确的例子,比如"9,3,4,#,#,1,#,#,2,#,6,#,#" 或者"9,3,4,#,#,1,#,#,2,#,6,#,#"等等,可以观察出如下两个规律: 1. 数字的个数总是比#号少一个 2. 最后一个一定是#号 那么我们加入先不考虑最后一个#号,那么此时数字和#号的 阅读全文
posted @ 2017-08-07 18:40 apanda009 阅读(161) 评论(0) 推荐(0)
摘要:动态规划重点在于找到:维护量,递推式。维护量通过递推式递推,最后往往能得到想要的结果 先说说维护量,res[i][j]表示用s1的前i个字符和s2的前j个字符能不能按照规则表示出s3的前i+j个字符,如此最后结果就是res[s1.length()][s2.length()],判断是否为真即可。接下来 阅读全文
posted @ 2017-08-05 21:56 apanda009 阅读(142) 评论(0) 推荐(0)
摘要:这道题属于数值操作的题目,其实更多地是考察乘法运算的本质。基本思路是和加法运算还是近似的,只是进位和结果长度复杂一些。我们仍然是从低位到高位对每一位进行计算,假设第一个数长度是n,第二个数长度是m,我们知道结果长度为m+n或者m+n-1(没有进位的情况)。对于某一位i,要计算这个位上的数字,我们需要 阅读全文
posted @ 2017-08-04 15:00 apanda009 阅读(164) 评论(0) 推荐(0)
摘要:Map.Entry<> entry : map.entrySet() 阅读全文
posted @ 2017-07-15 10:55 apanda009 阅读(122) 评论(0) 推荐(0)
摘要:carry sum 处理字符串的运算问题, 在转化成数值: (int) (num1.charAt(i) - '0') 转换成数值(同 Character.getNumericValue(char a) ), 非ASCII 码. 再 转化成字符. 也常转化成AScII 码, 在转换成字符串, 所以看看 阅读全文
posted @ 2017-07-13 10:21 apanda009 阅读(141) 评论(0) 推荐(0)
摘要:这道题还是蛮有创意的一道题,是说自然数序列看成一个长字符串,问我们第N位上的数字是什么。那么这道题的关键就是要找出第N位所在的数字,然后可以把数字转为字符串,这样直接可以访问任何一位。那么我们首先来分析自然数序列和其位数的关系,前九个数都是1位的,然后10到99总共90个数字都是两位的,100到99 阅读全文
posted @ 2017-07-11 18:57 apanda009 阅读(171) 评论(0) 推荐(0)
摘要:我的做法, hashMap, O(n) space, O(n) time: 用ascii 码表, 时间, 空间都是O(1) 学会转化: (int) s.charAt(i) 阅读全文
posted @ 2017-07-09 21:37 apanda009 阅读(137) 评论(0) 推荐(0)
摘要:316. Remove Duplicate Letters321. Create Maximum Number402. Remove K Digits这三道题都用到了 stack 来求原序列中不打乱相对次序的最小子序列的技巧: 阅读全文
posted @ 2017-07-08 21:53 apanda009 阅读(173) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/u014688145/article/details/72859739 阅读全文
posted @ 2017-07-08 17:43 apanda009 阅读(195) 评论(0) 推荐(0)
摘要:Given a nested list of integers represented as a string, implement a parser to deserialize it. Each element is either an integer, or a list -- whose e 阅读全文
posted @ 2017-07-06 17:07 apanda009 阅读(151) 评论(0) 推荐(0)
摘要:https://leetcode.com/problems/evaluate-reverse-polish-notation/#/description RPN中文名字叫做逆波兰表示法,它的好处维基百科说了,就是不需要括号来表示运算的先后,直接根据式子本身就可以求解。解题思路就是维护一个栈,遇到数字 阅读全文
posted @ 2017-07-05 22:13 apanda009 阅读(159) 评论(0) 推荐(0)
摘要:这两题有一个 trick 和 Minimum Window Substring 非常像,就是维护一个 "curCount" 代表目前 (i,j) 之间 match 上的数量,而通过 hash[] 的正负充当计数器的作用 参照 k characters: http://www.cnblogs.com/ 阅读全文
posted @ 2017-07-05 21:50 apanda009 阅读(150) 评论(0) 推荐(0)
摘要:ou are given a string, s, and a list of words, words, that are all of the same length. Find all starting indices of substring(s) in s that is a concat 阅读全文
posted @ 2017-07-05 17:47 apanda009 阅读(120) 评论(0) 推荐(0)
摘要:https://leetcode.com/problems/longest-word-in-dictionary-through-deleting/#/solutions Given a string and a string dictionary, find the longest string 阅读全文
posted @ 2017-07-05 14:38 apanda009 阅读(174) 评论(0) 推荐(0)