#牛客堂直播视频#经典动态规划题目大串讲(2015.8.5)

 
预习课程:http://www.nowcoder.com/discuss/1820,即经典算法题精讲(八)-从斐波那契数列学习矩阵乘法的优化技巧、从暴力递归到动态规划

【本期题目】 
题目在线练习地址:http://www.nowcoder.com/test/123743/summary
1、字符串的交错组成
【题目】
给定三个字符串str1、str2和aim。如果aim包含且仅包含来自str1和str2的所有字符,而且在aim中属于str1的字符之间保持原来在str1中的顺序,属于str2的字符之间保持原来在str2中的顺序,那么称aim是str1和str2的交错组成。实现一个函数,判断aim是否是str1和str2交错组成。
【举例】
str1=“AB”,str2=“12”。那么“AB12”、“A1B2”、“A12B”、“1A2B”和“1AB2”等等都是str1和str2交错组成。

2、表达式得到期望结果的组成种数
【题目】
给定一个只由0(假)、1(真)、&(逻辑与)、|(逻辑或)和^(异或)五种字符组成的字符串express,再给定一个布尔值desired。返回express能有多少种组合方式,可以达到desired的结果。
【举例】
express=“1^0|0|1”,desired=false。
只有1^((0|0)|1)和1^(0|(0|1))的组合可以得到false。返回2。
express=“1”,desired=false。
没有组合可以得到false。返回0。

3、排成一条线的纸牌博弈问题
【题目】
给定一个整型数组arr,代表数值不同的纸牌排成一条线。玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的纸牌,玩家A和玩家B都绝顶聪明。请返回最后获胜者的分数。
【举例】
arr=[1,2,100,4]。
开始时玩家A只能拿走1或4。如果玩家A拿走1,则排列变为[2,100,4],接下来玩家B可以拿走2或4,然后继续轮到玩家A。如果开始时玩家A拿走4,则排列变为[1,2,100],接下来玩家B可以拿走1或100,然后继续轮到玩家A。玩家A作为绝顶聪明的人不会先拿4,因为拿了4之后玩家B将拿走100。所以玩家A会先拿1,让排列变为[2,100,4],接下来玩家B不管怎么选,100都会被玩家A拿走。玩家A会获胜,分数为101。所以返回101。
arr=[1,100,2]。
开始时玩家A不管拿1还是2,玩家B作为绝顶聪明的人,都会把100拿走。玩家B会获胜,分数为100。所以返回100。

4、字符串匹配问题
【题目】
给定字符串str,其中绝对不含有字符’.’和’*’。再给定字符串exp,其中可以含有’.’或’*’,’*’字符不能是exp的首字符,并且任意两个’*’字符不相邻。exp中的’.’代表任何一个字符,exp中的’*’表示’*’的前一个字符可以有0个或者多个。请写一个函数,判断str是否能被exp匹配。
【举例】
str=“abc”,exp=“abc”。返回true。
str=“abc”,exp=“a.c”。exp中单个’.’可以代表任意字符,所以返回true。
str=“abcd”,exp=“.*”。exp中’*’的前一个字符是’.’,所以可表示任意数量的’.’字符,所以当exp是“....”时与“abcd”匹配,所以返回true。
str=“”,exp=“..*”。exp中’*’的前一个字符是’.’,可表示任意数量的’.’字符,但是”.*”之前还有一个’.’字符,该字符不受‘*’的影响,所以str起码得有一个字符才能被exp匹配。所以返回false。

注:下面回帖给出了源代码供参考。

【分享嘉宾介绍】
左程云
华中科技大学本科--计算机科学与技术专业、 芝加哥大学硕士--计算机科学专业
IBM软件工程师、 百度软件工程师、 刷题5年的算法热爱者
《程序员代码面试指南--IT名企算法与数据结构题目最优解》 作者,电子工业出版社7月底将出版发行,书籍涉及算法与数据结构编程题目240道以上,并且个人实现出最优解,大部分题目为面试高频题

【参与牛客堂直播】
每周三晚8:00~9:30,直播页面http://www.nowcoder.com/live/courses

【直播题目讨论】
加入牛客5群272820159
全部评论
本期答案领取地址:    加入牛客讨论2群(244930442 )   群资料中文件:2015-08-05讲座题目与代码
点赞 回复
分享
发布于 2015-08-08 17:26
谢谢左老师
点赞 回复
分享
发布于 2015-08-17 16:15
联想
校招火热招聘中
官网直投
赞一个
点赞 回复
分享
发布于 2015-08-17 17:04
讲得很精彩,题也选得很深刻,谢谢左老师
点赞 回复
分享
发布于 2015-08-25 19:47
回帖才能看到????????????
点赞 回复
分享
发布于 2015-08-27 20:29
代码    在哪里啊
点赞 回复
分享
发布于 2015-08-28 10:13
哈哈哈哈哈哈
点赞 回复
分享
发布于 2015-08-28 10:59
我要回帖aa
点赞 回复
分享
发布于 2015-08-28 16:59
感谢左sensen。。 我是特别怕递归、动态规划这类题目了。
点赞 回复
分享
发布于 2015-08-31 11:48
好!!
点赞 回复
分享
发布于 2015-08-31 14:00
看不到
点赞 回复
分享
发布于 2015-09-10 16:28
恩,好的
点赞 回复
分享
发布于 2015-09-13 15:21
最后一道题有讲解吗?
点赞 回复
分享
发布于 2015-09-13 21:28
我要源代码
点赞 回复
分享
发布于 2015-09-15 01:42
醍醐灌顶~~
点赞 回复
分享
发布于 2015-09-19 16:59
第四题好
点赞 回复
分享
发布于 2015-09-19 21:57
程云大师太牛,从暴力递归到动态规划,动态规划讲的很清楚。 以前还很含糊,比书上透彻。
点赞 回复
分享
发布于 2015-12-12 03:54
谢谢大师,谢谢牛客网,分享这么好的干货
点赞 回复
分享
发布于 2015-12-12 05:24
代码了,那个群加不了了
点赞 回复
分享
发布于 2016-01-04 21:46
看看
点赞 回复
分享
发布于 2016-01-28 17:06

相关推荐

点赞 65 评论
分享
牛客网
牛客企业服务