酷代码 AI
菜单
服务商

提示信息: 密码锁:由 n 个从左到右并排的圆环组成,每个圆环上都有 10 个数字(0~9),蓝色框内为密码显示区,每个圆环在密码显示区只能显示一个数字,如图所示。可以拨动圆环,来改变密码显示区显示的数字。 当密码显示区的数字与密码一致时,密码锁就会被打开。 image 编程实现: 有一个由 n 个圆环组成的密码锁,和一个 n 位的密码 S(S 由 1~9 中的数字(包含 1 和 9)组成)。每次操作只能选择一个或位置连续的多个圆环拨动。当 S 中的字符从左到右依次显示在密码显示区时,密码锁会被打开。 已知每个圆环在密码显示区初始数字都为 0,请计算最少需要操作多少次,才能打开密码锁。 注意: 1、如果选择了其中一个圆环,可将该圆环中任意一个数字拨动到密码显示区,表示 1 次操作; 例如:将第 3 个圆环拨动到数字 4,表示 1 次操作: image 2、如果选择了位置连续的多个圆环,只能将这些圆环拨动成同一个数字,显示在密码显示区,表示 1 次操作。 例如:将连续的第 2 个到第 3 个圆环都拨动到数字 5,表示 1 次操作: image 例如: n = 5,S

```python # 读取输入 n = int(input()) S = input() # 初始化操作次数为 0 operations = 0 # 初始化当前连续相同数字的起始位置 start = 0 while start < n: # 找到当前连续相同数字的结束位置 end = start while end < n - 1 and S[end + 1] == S[start]: end = end + 1 # 如果当前连续数字不是 0,需要进行操作 if S[start] != '0': operations = operations + 1 # 更新起始位置为下一个不同数字的起始位置 start = end + 1 print(operations) ``` [2025-11-15 21:22:40 | AI问答 | 163点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多