Прикреплённый файл «NOCamelCase.py»
Загрузка 1 #!/usr/bin/env python
2 # coding: utf
3 '''
4 По мнению Петра, сообщение является красивым, если любая прописная буква стоит левее любой строчной. Иными словами это правило описывает строки, в которых сначала идет ноль или более прописных букв, а затем — ноль или более строчных. Для приведения письма в красивый вид Петр может замазать некоторую букву и записать эту же букву в этом же месте в противоположном регистре (строчную букву заменить на прописную и наоборот). Петр заинтересовался вопросом — какое наименьшее число действий необходимо, чтобы привести письмо в красивый вид. Одним действием будет считать смену регистра буквы в письме. Никаких других действий Петр совершать не может.
5
6 Входные данные. В единственной строке входных данных содержится непустая строка из строчных и прописных латинских букв. Длина строки не превосходит 10**5.
7
8 Выходные данные. Выведите единственное число — наименьшее число действий, необходимое, чтобы письмо стало красивым.
9 '''
10 import sys
11
12 if len(sys.argv)>1: # Генератор
13 import random
14 alp="".join([chr(i) for i in range(ord('A'),ord('Z')+1)+range(ord('a'),ord('z')+1)])
15 print "".join((random.choice(alp) for i in xrange(int(sys.argv[1]))))
16 sys.exit(0)
17
18 S=map(str.isupper,raw_input())
19
20 def Clean(S): # Проверочная функуия
21 N=S.count(True)
22 T,F,m=N,0,N
23 for l in S:
24 if l: T-=1
25 else: F+=1
26 m=min(m,F+T)
27 return m
28
29 def Funclean(S): # Решение в одну строку!
30 return reduce(lambda (m,t,f), e: e and (min(m,t-1+f),t-1,f) or (m,t,f+1), S, [S.count(True)]*2+[0])[0]
31
32 print Clean(S)
33 print Funclean(S)
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2012-05-02 09:00:02, 2.2 KB) [[attachment:Matan.py]]
- [получить | показать] (2012-05-02 09:00:17, 2.3 KB) [[attachment:NOCamelCase.py]]
Вам нельзя прикреплять файлы к этой странице.