是否有可用的库或代码片段可以采用两个字符串并返回两个字符串之间的确切或近似中点字符串?
最好是代码在 Python 中。
背景:
从表面上看,这似乎是一个简单的问题,但我有点挣扎:
- 显然,“A”和“C”之间的中点字符串将是“B”。
- 使用 base64 编码,“A”和“B”之间的中点字符串可能是“Ag”
- 使用 UTF-8 编码,我不确定有效的中点是什么,因为中间字符似乎是一个控制字符:
U+0088 c2 88 <control>
实际应用:
我问的原因是因为我希望编写 map-reduce 类型的算法来读取我们数据库中的所有条目并处理它们。数据库中的主键是 UTF-8 编码的字符串,字符随机分布。我们使用的数据库是 Cassandra。
希望从数据库中获取最低键和最高键,然后通过找到中点将其分成两个范围,然后通过找到它们的中点将这两个范围分成两个较小的部分,直到我有几千个部分,然后我可以异步阅读每个部分。
如果字符串是 base-16 编码的示例:(一些中点是近似值):
开始最高和最低键:'000''FFF' / \ / \ '000' '8' '8' 'FFF' / \ / \ / \ / \ 结果:'000' '4' '4' '8' '8' 'B8' 'B8' 'FFF' (经过3级递归)