给定一个输入字符串A
,有没有简洁的方法来生成字符串B
按字典顺序大于 A
,即A < B == true
?
我的原始解决方案是:
B = A;
++B.back();
但一般来说这是行不通的,因为:
-
A
可能为空 A
的最后一个字符可能接近环绕,在这种情况下,结果字符将具有较小的值,即B < A
.- 每次添加额外的字符都是一种浪费,并且会很快导致不合理的大字符串。
所以我想知道是否有一个标准库函数可以在这里帮助我,或者是否有一个策略可以在我想从任意字符串开始时很好地扩展。
最佳答案
您可以将 A 复制到 B,然后查看最终的字符。如果最后一个字符不是您范围内的最后一个字符,那么您只需将其加一即可。
否则你可以查看last-1、last-2、last-3。如果到达字符列表的前面,则追加到长度。
关于c++ - 生成按字典顺序大于输入的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69607484/