ALPHA = 'abcdefghijklmnopqrstuvwxyz'
tests = [
'aab','abac','aabaacaabade', # First 3 tests should eval True
'ba','aac','aabbccddf' # Last 3 test should eval False
]
def CheckString(test):
alpha_counter = 0
while test:
if test[0] == ALPHA[alpha_counter]:
test = test.replace(ALPHA[alpha_counter],'')
alpha_counter+=1
else:
return False
return True
for test in tests:
print CheckString(test)
True
True
True
False
False
False
Учитывая ваши критерии ...
Все, что вам нужно сделать, это проверить первую букву, чтобы увидеть, соответствует ли она вашим критериям ... если это так, удалите все вхождения этой буквы из строки. И перейти на следующую букву. Ваши заданные критерии упрощают, потому что вам просто нужно проверить в алфавитном порядке.
aabaacaabade
возьмем приведенную выше строку, например.
first letter 'a' passes criteria [there are no letters before 'a']
remove all 'a's from string remaining string: bcbde
first letter 'b' passes criteria [there was an 'a' before the 'b']
remove all 'b's from string remaining string: cde
first letter 'c' passes criteria [there was an 'a' and a 'b' before the 'c']
remove all 'c's from string remaining string: de
...
Это должно сработать, если я правильно понял ваши критерии.