第一题 293. Flip Game
题目描述
在一个String中,将连续两个 ++ 换成 –
算法
|
|
学到的东西
substring这个函数如果越过边界的话,默认返回空,不需要做超过边界的处理
第二题 294. Flip Game II
题目描述
现在求第一个走的人是否能赢
算法
回溯
查看下一个选择的人是否能赢
|
|
动态规划
把之前的状态进行存储,减少时间消耗
|
|
第三题 606. Construct String from Binary Tree
题目描述
将二叉树序列化为字符串,形式为”root(left)(right)”,空节点表示为”()”。所有不产生歧义的空括号可以省去。
算法
First Version
|
|
Refactory
|
|
第四题 520. Detect Capital
题目描述
判断单词是否为首字母大写、全部大写或者全部小写
注意:输入单词非空并且只包含大写或者小写字母
算法
统计法
|
|
正则匹配
|
|
第五题 383. Ransom Note
题目描述
给定两个字符串ransomNote和magazine,编写函数判断magazine中的字符是否可以完全包含ransomNote中的字符。
注意:可以假设字符串中只包含小写字母。
算法
|
|
第六题 539. Minimum Time Difference
题目描述
给定一组24小时制的时间,格式为“小时:分钟”,求任意两组时间中分钟数间隔的最小值。
注意:
- 给定时间至少2个,至多20000个。
- 给定时间是合法的,范围在00:00到23:59之间。
算法
利用bucket sort进行排序,然后找出最近的两个时间,时间复杂度O(n)
|
|
第七题 22. Generate Parentheses
题目描述
给定n个括号(),找出这些括号所有的搭配方式
算法
回溯,并计算左右括号的匹配情况
|
|
第八题 17. Letter Combinations of a Phone Number
题目描述
对于8字键盘格,一个数字将会对应多个号码,找出数字对应的所有的字母组合可能性
算法
回溯
|
|
利用队列
|
|
第九题 20. Valid Parentheses
题目描述
将所有左括号和右括号匹配
算法
利用Stack 判断是否所有括号都得到了相应的匹配
|
|