程序查找不大于n的数字,其中python中所有数字均不减
假设我们有一个数字n,我们必须找到小于或等于n的最大数字,其中所有数字都不减。
因此,如果输入类似于n=221,则输出将为199。
为了解决这个问题,我们将按照以下步骤操作:
digits:=包含所有数字的列表
绑定:=null
对于i的数字范围大小-1降至0,请执行
因为我在与数字大小有关的范围内
位数[i]:=9
绑定:=我
digits[i-1]:=digits[i-1]-1
如果digits[i]<digits[i-1],则
如果bound不为null,则
将每个数字连起来形成一个数字并将其返回
让我们看下面的实现以更好地理解:
范例程式码
class Solution:
def solve(self, n):
digits = [int(x) for x in str(n)]
bound = None
for i in range(len(digits) - 1, 0, -1):
if digits[i] < digits[i - 1]:
bound = i
digits[i - 1] -= 1
if bound:
for i in range(bound, len(digits)):
digits[i] = 9
return int("".join(map(str, digits)))
ob = Solution()n = 221
print(ob.solve(n))输入值
221
输出结果
199
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短