【发布时间】:2021-12-05 00:02:56
【问题描述】:
给定一个输入字符串A,是否有一种简洁的方法可以生成一个在字典上大于A 的字符串B,即A < B == true?
我的原始解决方案是:
B = A;
++B.back();
但通常这不起作用,因为:
-
A可能为空 -
A的最后一个字符可能接近环绕,在这种情况下,生成的字符将具有较小的值,即B < A。 - 每次都添加一个额外的字符是一种浪费,而且会很快出现在不合理的大字符串中。
所以我想知道是否有一个标准库函数可以帮助我,或者当我想从任意字符串开始时是否有一个可以很好地扩展的策略。
【问题讨论】:
-
A实际上是空的,你想要的答案是什么? -
@cigien 任何产生
A < B的答案都是可以接受的。一个好的答案将避免以需要后续调用向输入字符串添加字符的方式“花费”可用范围。我已将我当前的解决方案发布为对常见案例的虚拟处理(我对此还不满意)
标签: c++ string c++-standard-library