检查字符串是否按abc顺序排列

时间:2011-03-01 03:19:57

标签: python string

因此该函数应该计算大写字母超出abc顺序的次数。

>>> abc('ABBZHDL')
    2

以上,z和d出现故障。

>>> abc('ABCD')
    0

>>> abc('DCBA')
    4

我的代码:

 def abc(check):
 order=ABCDEFGHIJKLMNOPQRSTUVWXYZ
   for c in check:
      if check != order:
   #then I get stuck here

指针?

3 个答案:

答案 0 :(得分:1)

问题不明确。附近问题的一个解决方案是使用内置的sorted():

def abc(s):
    count = 0
    s = ''.join(i for i in s if i.isupper())
    l = sorted(s)
    for i,c in enumerate(s):
        if l[i] != c:
            count += 1
    return count

它会计算按字母顺序排列的字符串与原始字符串不匹配的所有位置。

答案 1 :(得分:0)

def abc(check):
   last = ''
   count = 0
   for letter in check:
      if not letter.isupper():
           continue
      if letter < last:
           count += 1
      last = letter
   return count 

答案 2 :(得分:0)

import string

a = 'acbdefr'
b = 'abdcfe'

assert ''.join(sorted(b)) in string.ascii_letters
assert ''.join(sorted(a)) in string.ascii_letters #should fail

它真的很简单,每个人似乎都有些过于复杂?