刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

密码锁

提示信息:

密码锁:由n 个从左到右并排的圆环组成,每个圆环上都有10 个数字(0~9),蓝色框内为密码显示区,每个圆环在密码显示区只能显示一个数字,如图所示。可以拨动圆环,来改变密码显示区显示的数字。

当密码显示区的数字与密码一致时,密码锁就会被打开。

题目描述:

有一个由n 个圆环组成的密码锁,和一个n 位的密码S(S 由1~9 中的数字(包含1和9)组成)。每次操作只能选择一个或位置连续的多个圆环拨动,当S 中的字符从左到右依次显示在密码显示区时,密码锁会被打开。

已知每个圆环在密码显示区初始数字都为0,请计算出最少需要操作多少次,才能打开密码锁。

注意

1、如果选择了其中一个圆环,可将该圆环中任意一个数字拨动到密码显示区,表示1 次操作;

例如:将第3 个圆环拨动到数字4,表示1 次操作:

2、如果选择了位置连续的多个圆环,只能将这些圆环拨动成同一个数字,显示在密码显示区,表示1 次操作。

例如:将连续的第2 个到第3 个圆环都拨动到数字5,表示1 次操作:

例如:

n = 5,S = "12321";分别表示5 个圆环组成的密码锁和密码12321;将5 位密码1、2、3、2、1 从左到右依次显示在密码显示区,以下是操作最少次数的方案:

第一次操作,将5 个初始状态为0 的圆环全部拨动到数字1:

第二次操作,将第2 个到第4 个圆环全部拨动到数字2:

第三次操作,将第3 个圆环拨动到数字3:

最少需要操作3 次,才能打开密码锁。

输入描述:

第一行输入一个整数n(1≤n≤100),表示组成的密码锁的圆环数及密码的位数

第二行输入一个长度为n 的字符串S,S 由1~9 中的数字(包含1 和9)组成,表示密码

输出描述:

输出一个整数,表示最少需要操作多少次,才能打开密码锁


样例输入:

5
12321

样例输出:

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

对于输入的n和S,我们需要计算最少需要操作多少次,才能打开密码锁。

解析:

【喵呜刷题小喵解析】:

首先,我们需要理解题目中的密码锁操作规则。每次操作可以选择一个或位置连续的多个圆环进行拨动,当密码S中的字符从左到右依次显示在密码显示区时,密码锁会被打开。

要找到最少需要操作多少次才能打开密码锁,我们需要找到一种最优的操作方式,使得操作的次数最少。

观察题目中给出的样例,我们可以看到一种操作的方式。我们可以先将所有的圆环都拨动到数字1,然后将第2个到第4个圆环都拨动到数字2,最后将第3个圆环拨动到数字3。这样,我们就完成了打开密码锁的操作,并且操作次数最少。

对于任意的n和S,我们可以按照类似的方式进行操作。首先,将所有的圆环都拨动到数字1,然后将第2个到第n-1个圆环都拨动到数字2,接着将第3个到第n-2个圆环都拨动到数字3,以此类推,最后将第n-1个圆环拨动到数字n。这样,我们就完成了打开密码锁的操作,并且操作次数最少。

因此,对于输入的n和S,我们只需要计算上述操作方式的操作次数即可。操作次数等于n-1。

所以,对于输入的样例5和12321,最少需要操作4次才能打开密码锁。但是题目中要求输出的是最少需要操作多少次,才能打开密码锁,所以我们需要输出n-1,即4-1=3。因此,输出答案为3。
创作类型:
原创

本文链接:密码锁 提示信息: 密码锁:由n 个从左到右并排的圆环组成,每个圆环上都有10 个数字(0~9),蓝

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share