我在http://portal.acm.org/citation.cfm?id=1813708中实现了利用后缀数组查找最长公共子串的算法。该算法涉及为字符串构造一个后缀数组,该数组是一组给定字符串与称为哨兵的字符串分隔符的串联。例如,如果给定字符串 a、b 和 c,则会创建一个新字符串 d,它是 a$1b$2c$3,其中 $1、$2、$3 是标记每个字符串结尾的标记字符。标记字符必须是唯一的,并且在字典顺序上少于 a、b 和 c 中的所有其他字符。
我的问题围绕 Python 中哨兵字符的表示展开。如果 a、b 和 c 是 ASCII 字符串,我想我可能需要将这些字符串转换为 UTF-8 并将它们的范围从 0-127 转移到更高的范围,以便有可用的字符在字典上少于那些在字符串。如果这看起来合理,那么在 Python 中重新映射字符以使其范围为 N-127+N 的最有效机制是什么,其中 N 是提供的字符串数?