проверить, находится ли строка в порядке abc - PullRequest
0 голосов
/ 01 марта 2011

Таким образом, функция должна посчитать, сколько раз буквы в верхнем регистре выходят из 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

Pointers

Ответы [ 3 ]

1 голос
/ 01 марта 2011

Вопрос плохо определен.Одним из решений соседнего вопроса было бы использование встроенной функции 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

. Она подсчитывает все места, где строка в алфавитном порядке не соответствует оригиналу.

0 голосов
/ 01 марта 2011
import string

a = 'acbdefr'
b = 'abdcfe'

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

Это действительно просто, кажется, все это несколько усложняют?

0 голосов
/ 01 марта 2011
def abc(check):
   last = ''
   count = 0
   for letter in check:
      if not letter.isupper():
           continue
      if letter < last:
           count += 1
      last = letter
   return count 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...