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表示