把一个颜色段看作一个球。现在有三个栈。初始 \(1,2\) 有球,\(3\) 空。
依次判断。
-
如果 \(1,2\) 中都只有一种颜色且 \(3\) 空,结束。
-
若 \(1,2\) 的栈顶元素不一样且 \(3\) 为空时,把 \(1,2\) 中球数量多的那个栈的栈顶放到 \(3\) 里。
-
否则先判断是否三个栈都非空。
-
若 \(1,2\) 的栈顶相同,球较多的 pop 栈顶。
-
若 \(1,3\) 或 \(2,3\) 的栈顶相同,不妨 \(1,3\) 的栈顶相同。
-
把一个颜色段看作一个球。现在有三个栈。初始 \(1,2\) 有球,\(3\) 空。
依次判断。
如果 \(1,2\) 中都只有一种颜色且 \(3\) 空,结束。
若 \(1,2\) 的栈顶元素不一样且 \(3\) 为空时,把 \(1,2\) 中球数量多的那个栈的栈顶放到 \(3\) 里。
否则先判断是否三个栈都非空。
若 \(1,2\) 的栈顶相同,球较多的 pop 栈顶。
若 \(1,3\) 或 \(2,3\) 的栈顶相同,不妨 \(1,3\) 的栈顶相同。