求58同城10.11笔试编程第三题五八文字碰碰消解题思路

完全没有思路,求解答(>﹏<)
输入一个数字表示给几个“五”和“八”,输入4就是4个“五”和4个“八”,“五八”可以消除,“八五”不可以,输出在给定个数“五”和“八”组成的所有字符串中可以消成空串的字符串个数
样例是下面这两个:
输入2,输出2(情况是5588和5858)
输入3,输出5(情况是555888、558588、585858、585588、558858)
#笔试题目##58集团#
全部评论
同一个数字考虑位置吗,比如输入的2,就是5588,那5 (1) 5 (2) 88,和5 (2) 5 (1) 88,5(1)第一个5的意思,这两个算一个字符串还是算两个,下面代码是这种情况只算一个的,改一下all_list添加那里代码可以分开算两个,Python3: https://paste.ubuntu.com/p/5MKmNksPPW/ 但复杂度太高,只能说算是一种思路吧😂
1 回复 分享
发布于 2020-10-12 13:03
题目意思是 (5(5(58)8)8) 这样三个都被消除吗?是的话我的理解是用个栈,然后遍历一遍就可以了,每次和栈顶匹配是否是58,是的话不入栈,然后弹掉栈顶
1 回复 分享
发布于 2020-10-12 13:45
      function fn(n){             let num = 0             function generate(l, r) {             if (l + r === 2 * n) {               num++               return             }             if (l < n) {               generate(l + 1, r)             }             if (l > r) {               generate(l, r + 1)             }           }           generate(0, 0)           return num         }
1 回复 分享
发布于 2020-10-12 14:12
有收到笔试通过的通知吗&hellip;
点赞 回复 分享
发布于 2020-10-14 12:39

相关推荐

Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
评论
2
2
分享
牛客网
牛客企业服务