Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

решение задач на Python (для новичков)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> решение задач на Python (для новичков)
Имя
Сообщение << Старые топики   Новые топики >>
решение задач на Python (для новичков) - 2009-06-09 17:20:20.290000   
relax_aka_men

Сообщений: 58
Оценки: 0
Присоединился: 2008-11-06 18:53:10.760000
все вопросы по этой теме предлагаю выкладывать здесь…..

задача намбер ван

нужно декодировать телефонный номера для АОН.
По запросу АОНа АТС посылает телефонный номер, используя следующие правила:
- Если цифра повторяется менее 2 раз, то это помеха и она должна быть отброшена
- Каждая значащая цифра повторяется минимум 2 раза
- Если в номере идут несколько цифр подряд, то для обозначения «такая же цифра как предыдущая» используется идущий 2 или более подряд раз знак #

Например, входящая строка 4434###552222311333661 соответствует номеру 4452136
Кстати, регулярные выражения использовать в этих заданиях - нельзя :)


написал маленькую чаcть кода, но не знаю как в цикле написать, что бы нужные буквы в другую строку записать
str_in = input("Введите номер антиАОН: ") str_out = "" for i in range(len(str_in)): print(str_out)
Post #: 1
RE: решение задач на Python (для новичков) - 2009-06-09 18:30:00.813333   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Я что-то пытался ваять на Питоне, но не до такой степени :)

Не понял, что тебе нужно. Присвоить другой строке str_out?
Post #: 2
RE: решение задач на Python (для новичков) - 2009-06-09 18:35:34.736666   
relax_aka_men

Сообщений: 58
Оценки: 0
Присоединился: 2008-11-06 18:53:10.760000
str_in - это входяшяя строка с номером
str_out - строка каторая должна получится после так сказать декодирования
Post #: 3
RE: решение задач на Python (для новичков) - 2009-06-10 03:08:44.286666   
dOver

Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
Я в питоне не силен (только сегодня поставил:) ) , но алгоритм будет следущий:
  Надо подсчитать количество каждого символа в цикле, если больше 1, увеличить на единицу и добавить к выходной строке. Если меньше или 1 - не добавляем. Если стоит #, то найти первый перед ним символ и добавить к выходной строке.
Post #: 4
RE: решение задач на Python (для новичков) - 2009-06-10 09:04:16.546666   
relax_aka_men

Сообщений: 58
Оценки: 0
Присоединился: 2008-11-06 18:53:10.760000
ну сам алгоритм я уже понял, вечером попробую что нибуть навоять
Post #: 5
RE: решение задач на Python (для новичков) - 2009-06-26 07:44:41.173333   
vzlomer

Сообщений: 3
Оценки: 0
Присоединился: 2009-06-26 05:13:18.946666
>>что бы нужные буквы в другую строку записать

Не очень понял твою проблему. Тебе не это?:

print 'vzlomer'[::-1]
>>>remolzv
Post #: 6
RE: решение задач на Python (для новичков) - 2009-06-26 11:03:08.900000   
relax_aka_men

Сообщений: 58
Оценки: 0
Присоединился: 2008-11-06 18:53:10.760000
ухоха!!! ты задание видел??? если нет то задай конкретный вопрос!!!
P.S. это фитчу с обратным отоброжение символов я знаю и она здесь не причем
Post #: 7
RE: решение задач на Python (для новичков) - 2009-06-26 16:17:00.906666   
Анон

Сообщений: 632
Оценки: 0
Присоединился: 2008-07-21 22:14:59.233333
Вот такое дело у меня получилось на C, только его ещё надо допилить(в частности неверный результат, если ввод начинается с '#'), но вроде работает.
#include &lt;stdio.h&gt; #include &lt;ctype.h&gt; void main() { char line[80]; /* input buffer */ char *curr = line; /* current character */ char lastdig; /* last accepted digit */ fgets(line, sizeof(line), stdin); while(*curr != '\0') { char next = *(curr+1); char prev = *(curr-1); if (isdigit(*curr)) { if ((next != *curr) && (prev == *curr)) { lastdig = *curr; putchar(*curr); } } else if (*curr == '#') { if ((next != *curr) && (prev == *curr)) putchar(lastdig); } ++curr; } putchar('\n'); }
Post #: 8
RE: решение задач на Python (для новичков) - 2009-06-26 16:57:46.580000   
relax_aka_men

Сообщений: 58
Оценки: 0
Присоединился: 2008-11-06 18:53:10.760000
ок) фенкью… шя попробую на python переделать…
Post #: 9
RE: решение задач на Python (для новичков) - 2009-07-14 21:00:15.430000   
once

Сообщений: 1
Оценки: 0
Присоединился: 2009-07-14 20:57:09.236666
у меня вот, что получилось:
s = "##112#334555556#####5" res = "" prevc = 0 pos = 0 for c in s: &nbsp;&nbsp;&nbsp; if(c == '#' and prevc): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = prevc &nbsp;&nbsp;&nbsp; if(prevc == c and pos == 0): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res = res + c &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = 1 &nbsp;&nbsp;&nbsp; elif(not prevc == c): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pos = 0 &nbsp;&nbsp;&nbsp; if(not c == '#'): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prevc = c print(res)
Post #: 10
RE: решение задач на Python (для новичков) - 2012-02-24 02:10:13.056666   
Kutas

Сообщений: 1
Оценки: 0
Присоединился: 2012-02-24 01:00:34.213333
"2#" в коде не должно давать "2" в результате,если я правильно понял условия. А вот "2##" должно давать "2"..


code = "0#3556##7766778#24"
q=0
previ=""
res=""

for i in code:

if i==previ:
q=q+2
elif i=="#" :
q=q+1

else:
previ=i
q=0

if q==2:
res=res+previ

print res
Post #: 11
Страниц:  [1]
Все форумы >> [Веб-программинг] >> решение задач на Python (для новичков)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.