初期状態を i=1,j=1i = 1, j = 1 として空のスタックを 11 つ用意し、iSi \leq |S| を満たす間、以下の遷移を考えます。

  • SiS_i = Tj (iS,jT)T_j \ (i \leq |S|, j \leq |T|) でスタックが空である時、i,ji, j 両方に 11 を加える。
  • そうでないとき、スタックに SiS_i を追加し、ii11 を加える。 スタックの後ろ 22 つの要素が同じとき、これら 22 文字をスタックから削除する。

この操作を行った後、j=Tj = |T| かつスタックが空の時、S=TS = T を達成することができます。