对于固定语言 在某些字母上 ,让我们考虑以下问题,我称之为 交错:
- 输入:两个字
- 输出:是否存在一个交错的 和 在里面 。
在这里,两个单词的交织 和 是一个字 可以通过取字母来直观地获得 和 同时保持其相对秩序。正式地, 是 和 如果我们可以将其划分为两个不相交的子序列,一个等于 另一个等于 。例如,“ bheleloll”是“ hello”和“ bell”的交错。
的复杂性是什么 -interleaving问题,取决于语言 ?特别是:
对于固定语言 在某些字母上 ,让我们考虑以下问题,我称之为 交错:
在这里,两个单词的交织 和 是一个字 可以通过取字母来直观地获得 和 同时保持其相对秩序。正式地, 是 和 如果我们可以将其划分为两个不相交的子序列,一个等于 另一个等于 。例如,“ bheleloll”是“ hello”和“ bell”的交错。
的复杂性是什么 -interleaving问题,取决于语言 ?特别是:
Answers:
一句话 和两个整数 与 我们用 子词 的 。此外,我们让 表示空词。
构造一个动态程序,其中一个状态 由指定
对于每个状态,确定在上下文无关的语法中是否存在以非终结符开头的某些派生 最后是两个单词的交错 和 。如果以正确的顺序处理状态(短子字在长子字之前),则可以轻松地做出此决定。
总而言之,这产生了多项式时间算法 上下文无关的语言的交织问题 。