擅长:python、mysql、java
<p>我猜你在找。。。在</p>
<pre><code>In [51]: def recurseString(a,b):
....: if b == '': return True
....: else:
....: if len(b) == 1: return b in a
....: else: return (b[0] in a) and recurseString(a, b[1:])
....:
In [52]: recurseString('jack', 'kjc')
Out[52]: True
In [53]: recurseString('stan', 'xun')
Out[53]: False
</code></pre>
<p>但是,不需要递归。使用<code>all</code>可以更好地解决这一问题,如下所示:</p>
^{pr2}$
<p>更像Python。在</p>
<p>也可以使用<code>reduce</code>,它的功能更强大,但可读性较差,因为Python有更好的处理方法。在</p>
<pre><code>In [60]: reduce(lambda x,y: (x and (y in 'jack')) , 'kjc', True)
Out[60]: True
</code></pre>
<p>最后,如果不使用<code>set</code>符号,这是不完整的:</p>
<pre><code>In [65]: (set('kjc') - set('jack')) == set()
Out[65]: True
</code></pre>
<p>所以正如您所看到的,递归版本最不适合这个问题!在</p>