1. 笔试
1.1 题目
有16种状态码分别是1-16,本来应该记为{1, 1, 1, 3},但是由于粗心记为{1113},题目:求出给定的输入如{1113}能够构成不同状态码的个数。{1113}可以构成{1, 1, 1, 3}, {11, 1, 3}, {1, 11, 3}, {1, 1, 13}, {11, 13}这5种状态码组合,因此输出5。
输入
4 // 第一行表示4个输入
1 1 1 3 // 第二行表示4个输入的值
输出
5
1.2 思路分析
此题类似力扣91题 解码方法https://leetcode-cn.com/problems/decode-ways/
1. 分析合法的数值规律
合法的状态为1-16,
即一个状态要么是1-9的任意一个数;
要么是十位数只能是1,个位数为0~6的任意一个数。
2. 组合方式
本题共有2种组合方式,
假设对于前n-1个数,他们组合后记为
, 简称为Y,
那么对于第n个数x来说,可能的组合为Y,x 或者 Yx:
1)Y, x代表x为个位数的状态,x取1~9中的任意一个均可以,此处x加在前n-1个数的组合后面,
2)Yx表示

本文介绍了招银网络科技笔试中的一道题目,该题目涉及动态规划解码方法。题目要求计算给定状态码组合能构成的不同状态码个数。通过分析合法数值规律和组合方式,采用动态规划算法求解,给出转移方程并提供了代码实现。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



