以下是一个示例代码,可以找到给定单词的按字典顺序的下一个单词:
def next_word(word):
# 将单词转换为列表,方便对字符进行操作
word_list = list(word)
# 从单词的最后一个字符开始向前遍历,找到第一个非递增的字符
i = len(word_list) - 2
while i >= 0 and word_list[i] >= word_list[i + 1]:
i -= 1
# 如果找不到非递增的字符,说明整个单词已经是字典顺序的最大单词
if i < 0:
return None
# 从后往前找到第一个比 word_list[i] 大的字符
j = len(word_list) - 1
while j > i and word_list[j] <= word_list[i]:
j -= 1
# 交换两个字符的位置
word_list[i], word_list[j] = word_list[j], word_list[i]
# 将 i 后面的字符按升序排列
word_list[i + 1:] = sorted(word_list[i + 1:])
# 将列表转换为字符串并返回
return "".join(word_list)
# 测试示例
word = "abcd"
next_word = next_word(word)
print(next_word)
运行该代码将输出abdc
,即给定单词abcd
的按字典顺序的下一个单词。
上一篇:按字典顺序打印唯一子集
下一篇:按字典顺序对数组进行排序