擅长:python、mysql、java
<p>如果您处理的是<a href="http://en.wikipedia.org/wiki/Bijective_numeration#The_bijective_base-26_system">bijective numeration</a>,那么您可能有(或应该有)函数来转换成/来自双射表示;只需将其转换为一个整数,增加它,然后再转换回原来的值就容易得多了:</p>
<pre><code>def from_bijective(s, digits=string.ascii_uppercase):
return sum(len(digits) ** i * (digits.index(c) + 1)
for i, c in enumerate(reversed(s)))
def to_bijective(n, digits=string.ascii_uppercase):
result = []
while n > 0:
n, mod = divmod(n - 1, len(digits))
result += digits[mod]
return ''.join(reversed(result))
def new_sku(s):
return to_bijective(from_bijective(s) + 1)
</code></pre>