我有问题。这是描述。
2个字符串之间的距离是两者之间的绝对差值之和 相同位置的字母(例如差异(" ab"," cd")= abs(' a' - ' c')+ abs(' b' - ' d')= 4)。有一个字符串 orig 。然后, orig 的字母被洗牌。然后,您可以替换仅一个 来自字符串的字母及其下一个或上一个字母或字母 什么都不做(不要替换任何字母)。让我们为新字符串命名 的 ST 即可。设 X 是 st 和 orig 之间的距离。鉴于 st 。
我的问题是,鉴于 st ,我需要为每个距离生成 X (其中 X =距离(orig,st),来自给定字符串 st 的可能字符串 orig 的数量。
更清楚的解释:我需要生成可能的数量 可以转换为具有距离的st的字符串orig(orig,st) 等于 X (其中0≤x≤250)。
约束:
- ' B' ≤st i ≤' y'
- 1≤| st | ≤10
- 0≤X≤250
我尝试过使用bitmasking进行动态编程,但问题似乎很慢(复杂性是O(2 | st | * | st | * | X | ))。有没有更适合解决这个问题的算法或数据结构?非常感谢任何提示或意见。谢谢:D
*如果有不明确的解释,请告诉我:D