擅长:python、mysql、java
<p>IMVHO对此类字符串进行排序的交换数为零。
我们得到X,Y和Z的计数(nx,ny,nz)。
然后我们用X填充第一个nx元素,用Y填充下一个ny元素,用Z填充其余元素。复杂性为o(n)</p>
<pre><code>def sortxyz(a):
nx = ny = nz = 0
for i in range(len(a)):
if a[i] == 'X':
nx += 1
elif a[i] == 'Y':
ny += 1
else:
nz += 1
return ''.join(['X'] * nx + ['Y'] * ny + ['Z'] * nz)
print(sortxyz('YXXZXZYYX'))
XXXXYYYZZ
</code></pre>
<p>对于更一般的情况,当列表元素可以采用<code>m</code>值时,复杂性将是o(m*n)</p>