擅长:python、mysql、java
<p>假设您的<code>Stack</code>类是堆栈容器的某个有效实现,那么您似乎正在创建一个<strong>空的</strong>堆栈</p>
<pre><code>S = Stack()
</code></pre>
<p>可能你想用</p>
<pre><code>S = Stack(S)
</code></pre>
<p>所以检查是否有相同数量的“a”和“b”总是返回True(如<code>StackA.size() == 0</code>和<code>StackB.size() == 0</code>)</p>
<p>而且,更简单的方法是</p>
<pre><code>def equal(S):
return len( [x for x in S if x=='a'] ) == len( [x for x in S if x=='b'] )
</code></pre>
<p>或者(正如埃里克·阿利克建议的那样)</p>
<pre><code>def equal(S):
return sum( 1 for x in S if x=='a' ) == sum( 1 for x in S if x=='b' )
</code></pre>