在 Python 中按字典顺序查找位于给定两个字符串之间的字符串
pythonserver side programmingprogramming更新于 2025/10/17 17:48:17
假设我们有两个字符串 S 和 T,我们必须检查是否存在一个长度相同的字符串,该字符串按字典顺序大于 S 且小于 T。如果没有这样的字符串,我们必须返回 -1。我们必须记住,如果存在 i,则 S = S1S2…Sn 按字典顺序小于 T = T1T2…Tn,因此 S1= T1,S2= T2,…Si – 1= Ti – 1,Si < Ti。
因此,如果输入为 S = "bbb"并且 T = "ddd",则输出将为 "bbc"
为了解决这个问题,我们将遵循以下步骤 −
- n := 字符串的大小
- 对于 n - 1 到 0 范围内的 i,减少 1,执行
- 如果 string[i] 与 'z' 不同,则
- k := (string[i]) 的 ASCII
- string[i] := ASCII (k + 1) 中的字符
- 连接字符串字符并返回
- string[i] := 'a'
- 如果 string[i] 与 'z' 不同,则
示例
让我们看看下面的实现以便更好地理解 −
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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

