软件测试 每日一题

寻找下一个更大的数字

创建一个函数,它接受一个正整数并返回下一个更大的数字,该数字可以通过重新排列其数字来形成。例如:

12 ==> 21
513 ==> 531
2017 ==> 2071
nextBigger(num: 12)   // returns 21
nextBigger(num: 513)  // returns 531
nextBigger(num: 2017) // returns 2071

如果无法重新排列数字以形成更大的数字,请返回-1 :

9 ==> -1
111 ==> -1
531 ==> -1

题目难度:一般
 

def next_bigger(n:int) -> int:
    # your code here

assert next_bigger(12) == 21
assert next_bigger(513) == 531
assert next_bigger(2017) == 2071
assert next_bigger(414) == 441
assert next_bigger(144) == 414
assert next_bigger(123456789) == 123456798
assert next_bigger(1234567890) == 1234567908
assert next_bigger(9876543210) == -1
assert next_bigger(9999999999) == -1
assert next_bigger(59884848459853) == 59884848483559

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值