擅长:python、mysql、java
<pre><code>def deleter(char,seq):
if not seq or not isinstance(seq, list):
return []
else:
if char==seq[0][0]:
return function(char,seq[1:])
else:
return [seq[0]]+function(char,seq[1:])
</code></pre>
<p>我将使用<a href="https://www.wikiwand.com/en/Recursion" rel="nofollow"><em>recursive</em></a>定义来解决它:</p>
<ul>
<li><strong>基本情况</strong>:如果<code>seq</code>为空,则返回一个空列表</li>
<li><strong>检查大小写</strong>:如果索引0处的元素是我们讨厌的字符,则忽略它。在</li>
<li><strong>解决方案</strong>:<code>else return the first element in the list seq in a form of list and add to it the call of function itself</code></li>
</ul>
<p><strong>编辑</strong>:
我有一种感觉,你是一个新的程序员,如果是这样的话,我只想强调递归函数的美丽和优雅。这是一种优雅的数学解题方法。如果新程序员、前程序员和数学家熟悉离散数学中的<em><a href="https://www.wikiwand.com/en/Mathematical_induction" rel="nofollow">proof by indcution</a></em>,那么您的代码将非常容易被阅读。在大多数情况下,基本上遵循以下伪代码:</p>
<ul>
<li><strong>基本情况</strong>:终止函数的条件</li>
<li><strong>Return语句</strong>:递归返回对函数的调用
我把递归可视化的方式是你有一个问题要解决,你假设你已经创建了一个函数来解决问题(基本情况),现在你调用这个函数来解决你的问题(返回函数的调用)</li>
</ul>