<p>我目前正在尝试解决字符串是否平衡的问题(检查字符串是否具有相同数量的唯一字符,例如“ab”的“a”和“b”数量相等,因此它将返回“是”,而“cdc”的“c”比“d”多1个,因此它将返回“否”),我想到了一个需要交替变量的解决方案</p>
<p>例如,在下面的代码中:</p>
<pre><code>def balanced(string):
string_list = [x for x in string]
number_of_letter1 = 0
for letter in string_list:
current_letter = letter
for number in range(len(string_list)):
if string_list[number] == current_letter:
number_of_letter1 += 1
string_list.pop(number)
if number_of_letter1 != number_of_letter2:
return "No"
number_of_letter2 = number_of_letter1.copy()
number_of_letter1 = 0
return "Yes"
</code></pre>
<p>我试图计算字符串中出现的每个字母的数字,将当前字母分配给当前字母。然后我会计算字母出现的次数,并将字母1的数量增加1。下一步就是问题所在:(.我想让字母2的数字是字母1的数字的副本,这样我就可以将(下一个循环中字母1的新数字)与(上一个循环中字母1的数字,即字母2的数字)进行比较)。但是,仅对于第一个循环,字母2的数字_不存在,因此创建赋值错误之前使用的变量</p>
<p>我认为可以通过在第一个循环中锁定字母1的数字,然后更改字母2的数字,将其与字母1的数字进行比较,然后在每个交替循环中反之亦然(如果可能的话)。如果没有,有没有办法修复上面的代码,使其与所提到的逻辑一起工作</p>
<p>我知道这个问题的另一个解决方案,包括保持字母1的数量不变,而字母2的数量不变,并反复比较字母2的数量与字母1的数量不变。然而,如果上述建议的解决方案有效,我<strong>认为它比后者更有效,所以我很好奇有很多方法可以避免这个错误</p>
<p>感谢大家花时间阅读!如果我对自己想法的任何解释都不那么清楚,我会尽力解释得更清楚</p>