python按照字典顺序比较字符串_以字典顺序查找字符串,该字符串在Python中给定的两个字符串之间...

假设我们有两个字符串S和T,我们必须检查相同长度的字符串是否在字典上大于S且小于T。如果没有这样的字符串,则必须返回-1。我们必须谨记,只要存在i,S = S1S2…Sn在字典上就小于T = T1T2…Tn,因此S1 = T1,S2 = T2,... Si – 1 = Ti – 1, Si

因此,如果输入类似于S =“ bbb”和T =“ ddd”,则输出将为“ bbc”

为了解决这个问题,我们将遵循以下步骤-n:=字符串大小

对于范围在n-1到0的i,减1,k:=(string [i])的ASCII

string [i]:= ASCII中的字符(k +1)

加入字符串字符并返回

如果string [i]与“ z”不同,则

字符串[i]:='a'

示例

让我们看下面的实现以更好地理解-def find_next(string):

n = len(string)

for i in range(n - 1, -1, -1):

if string[i] != 'z':

k = ord(string[i])

string[i] = chr(k + 1)

return ''.join(string)

string[i] = 'a'

S = "bbb"

T = "ddd"

S = list(S)

res = find_next(S)

if res != T:

print(res)

else:

print(-1)

输入值"bbb", "ddd"

输出结果bbc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值