擅长:python、mysql、java
<p>您的问题是<em>配对</em>元素之一。您需要一次又一次地将特定的第一个字母与对应的最后一个字母进行匹配,直到所有名称都用尽。你知道吗</p>
<p>如果你仔细想想,当你完成后,你会在开头有一个未配对的第一个字母,在结尾有一个未配对的最后一个字母:</p>
<p>罗伯->;博比->;扬尼克->;卡尔->;路易吉->;伊戈尔->;蕾妮->;埃德蒙->;大卫->;迪奥奇尼斯</p>
<p>这意味着字母计数的减法应该是1,在两个方向上:应该有1个第一个字母不匹配,和1个最后一个字母不匹配(第一个最后一个,最后一个第一个)。<strong>但是,</strong>如果有重复的字母,即使这样也可能不够。您需要检查列表的长度(以确保其有效),然后检查差异是否为<;=1。你知道吗</p>
<p>假设您有一个长度为0的列表:第一个/最后一个字母的计数将为空,但列表太短。你知道吗</p>
<p>假设您有一个长度为1的列表:第一个/最后一个字母的计数将是1和1,这符合要求。你知道吗</p>
<p>假设您有一个长度为2的列表:</p>
<ul>
<li><p>假设没有重叠:['rob','diane'],那么第一个/最后一个字母的总计数将是2和2,违反了要求。</p></li>
<li><p>假设没有重叠,而是共享的字母:['brad','betty'],那么第一个/最后一个字母的总数将是2和2,但排列方式不同。我想你应该算数。;—)</p></li>
<li><p>假设存在完全重叠:['bob','bob']。这就留下了满足要求的空减法。</p></li>
<li><p>假设有部分重叠:['bob','betty']。这将分别留下{b:1}和{y:1}的计数,因此它可以工作。</p></li>
</ul>
<p>您必须处理差异为空、差异有一个元素包含计数为2+、差异有多个元素包含计数为1或更多的情况。你知道吗</p>
<p>我不认为你想要<code>any()</code>。我认为你需要某种聚合函数。我怀疑<code>sum()</code>会奏效。你知道吗</p>