Igor
и несколько пробелов в середине
спор ни о чем тест кейс я тебе дал :) падает ошибка
Mykola
У мене до вас є трохи дивна питання.
Mykola
В пайтоні компілятор читає рядки по порядку чи ні?
Igor
SELECT UserName, BookName, MAX(Date) FROM table GROUP BY UserName ORDER BY UserName;
create table t (username varchar(100), bookname varchar(100), date date); insert into scientist (username, bookname, date) values ('igor', 'albert', '2001-02-01'); insert into scientist (username, bookname, date) values ('igor', 'isaac', '2001-02-03'); insert into scientist (username, bookname, date) values ('igor', 'marie', '2001-02-04'); SELECT UserName, BookName, MAX(Date) FROM t GROUP BY UserName ORDER BY UserName; да постгре роняет ошибку column "t.bookname" must appear in the GROUP BY clause or be used in an aggregate function
Igor
постановка по каждому юзеру выбрать последнюю книгу которую он прочел даты все разные для каждого юзера
Igor
пускаю тут https://extendsclass.com/postgresql-online.html
Igor
Igor
по вашему запросу тоже падает ошибка скрин выше
Igor
смотря что вы имете ввиду под словами читает по порядку :)
Alexander
если у строки в конце 2 пробела то падает ошибка :) print (solve('a '))
def solve(s): forwar_index = 0 backward_index = len(s) - 1 result = '' while forwar_index < len(s) or backward_index >= 0: if s[backward_index] == ' ': backward_index -= 1 continue if s[forwar_index] != ' ': result += s[backward_index] backward_index -= 1 else: result += ' ' forwar_index += 1 return result
фанзиль
Всем привет) есть в группе менторы? ( по js) Если есть напишите в личку пожалуйста)
Igor
def solve(s): forwar_index = 0 backward_index = len(s) - 1 result = '' while forwar_index < len(s) or backward_index >= 0: if s[backward_index] == ' ': backward_index -= 1 continue if s[forwar_index] != ' ': result += s[backward_index] backward_index -= 1 else: result += ' ' forwar_index += 1 return result
да зашло но опять же это показывает почему возня с индексами это не удобно посмотрите решение с компрехеншином и итератором или с компрехеншином и pop они гораздо проще читаются и требуют гораздо меньше отладки
Igor
Скорее всего вы правы. Но вы пытались меня убедить что так не будет работать и нужны будут вложенные циклы.
не пытался я сказал что я вижу со вложенным вайлом когда вы внутри основного вайла ходите всегда на 1 по левому индексу и вторым вайлам идете по правому вы объединили эти два вайла в 1 ок
Igor
то что вы написали это си++ :)
Igor
ну и чтобы ваше решение было не квадратичным нужно result делать списком и в конце делать return ''.join(result) тогда будет линия
Igor
и да в таких мелких задачах это не важно но на собесе когда возникает вопрос о сложности обычно оценивают не правильно
Alexander
Но опять же, я же мидл, чтоб такие вещи учитывать. Я только учусь.
Igor
я только обращаю внимание на нюансы ни на что не претендую каждый может писать код как ему нравится :)
Alexander
Здесь заведомо маленькие тесты, о памяти можно не беспокоиться.
Alexander
Вот там была задача на скорость и оптимизацию кода. Я попотел знатно
Igor
здесь не было ограничения :) как в олимпиадном программировании откуда вы знаете что они маленькие? :)
Igor
сегодня не ваш день
Igor
def solve(s): forwar_index = 0 backward_index = len(s) - 1 result = '' while forwar_index < len(s) or backward_index >= 0: if s[backward_index] == ' ': backward_index -= 1 continue if s[forwar_index] != ' ': result += s[backward_index] backward_index -= 1 else: result += ' ' forwar_index += 1 return result solve(' '*10)
Alexander
здесь не было ограничения :) как в олимпиадном программировании откуда вы знаете что они маленькие? :)
Мне была предложена задача с ограничениями codears, я же ее решил. 😃 И даже с вашими расширенными тестами
wwwcpsszxmm6
Мне степик нравится, я правда программирование изучаю. Иногда прям бесит, настолько сложно. Но мозг вентилирует в правильном направлении
жиза. я уже не раз плакала из-за того, что не понимаю. вот не выкупаю, хоть ты тресни… но надежда и желание есть все равно))
Alexander
сегодня не ваш день
Вы просто отстааивааете свою точку зрения.
Igor
Вы просто отстааивааете свою точку зрения.
я нет я вам даю тест из 10 символов на котором ваше решение падает :)
Igor
чем он противоречит постановке?
Адъютант
Адъютант
найс срач, ждем конца и запоминаем лучшее решение GAN сетей
Адъютант
шучу
Адъютант
пойду дальше opencv допиливать
Alexander
сегодня не ваш день
def solve(s): forward_index = 0 backward_index = len(s) - 1 result = '' while forward_index < len(s) or backward_index >= 0: if s[backward_index] == ' ' and backward_index >=0: backward_index -= 1 continue if s[forward_index] != ' ': result += s[backward_index] backward_index -= 1 else: result += ' ' forward_index += 1 return result print('"' + solve(' '*10) +'"')
Alexander
чем он противоречит постановке?
вот здесь с джойном: def solve(s): forward_index = 0 backward_index = len(s) - 1 result = [] while forward_index < len(s) or backward_index >= 0: if s[backward_index] == ' ' and backward_index >=0: backward_index -= 1 continue if s[forward_index] != ' ': result.append(s[backward_index]) backward_index -= 1 else: result.append(' ') forward_index += 1 return ''.join(result) print('"' + solve(' '*10) +'"')
Igor
еще раз вся проблема в том что вы пытаетесь засунуть два цикла в один отсюда у вас такое множество условий на самом деле вы делаете вот это def solve(s): forward_index = 0 backward_index = -1 result = '' while forward_index < len(s): if s[forward_index] != ' ': while s[backward_index] == ' ': backward_index -= 1 result += s[backward_index] backward_index -= 1 else: result += ' ' forward_index += 1 return result
Igor
отдельно цикл по forward и отдельно по back
Igor
а у вас все в одной куче
Igor
да len(s) - n это просто отрицательные индекс -n
Alexander
Ну скажем так: вы поставили себе цель меня завалить и завалили. Поздравляю!
Igor
Ну скажем так: вы поставили себе цель меня завалить и завалили. Поздравляю!
я не ставил целью валить это проблемы которые не только у вас
Igor
вот очень популярная либа paramiko они "пытались" написать buffered_file
Igor
Igor
и тут на одном экране сразу две проблемы
Igor
result+= new_data
Igor
это квадрат по памяти при скачивании файла
Igor
на мелких пофиг на больших уже не так пофиг
Igor
и второй self._read(self._DEFAULT_BUFFERSIZE)
Igor
всегда используется дефолтный размер буффеа а не self._bufsize
Igor
те первую проблему можно бы было обойти увеличив размер буфера чтобы меньше раз делать += new_data но и тут не сложилось :)
Igor
и после того как с таким в продакшне поборишься начинаешь это видеть
Igor
и может быть сильно болезненно реагировать, но завалить желания не было :)
Alexander
Я уверен, что когда я найду работу, то под руководством такого дотошного тимлида как вы я ровно через год сдам зачёт на мидла.
Igor
все такие дотошные только на собесе :)
Igor
когда горят дедлайны все делают по классике хуяк хуяк и впродакшн :)
Alexander
Я прошел собес?
Igor
Я прошел собес?
сойдет :) но компрехеншины нада учить :) они сила
Alexander
Просто мы зацепились именно за решение с индексами.
Igor
нужно не знать а использовать :)
Alexander
нужно не знать а использовать :)
И использовать их умею
Igor
замнем для ясности свое видение решения с индексами я тоже выложил :)
Alexander
Давайте на компрехеншны задачу.
Igor
мы обычно их в задаче добавляем :) так отдельно у мну нет
Alexander
Вы же можете посмотреть мои решения на кодварсе.
Alexander
https://www.codewars.com/users/Nuu44a
Alexander
def decodeMorse(morse_code): # ToDo: Accept dots, dashes and spaces, return human-readable message # загоняем морязнку alpha = '''.- A -... B -.-. C -.. D . E ..-. F --. G .... H .. I .--- J -.- K .-.. L -- M -. N --- O .--. P --.- Q .-. R ... S - T ..- U ...- V .-- W -..- X -.-- Y --.. Z ----- 0 .---- 1 ..--- 2 ...-- 3 ....- 4 ..... 5 -.... 6 --... 7 ---.. 8 ----. 9 .-.-.- . --..-- , ..--.. ? .----. ' -.-.-- ! -..-. / -.--. ( -.--.- ) .-... & ---... => -.-.-. ; -...- = .-.-. + -....- - ..--.- _ .-..-. " ...-..- $ .--.-. @ ...---... SOS''' # делаем словарь alpha = alpha.split('\n') alpha = [x.split() for x in alpha] alphabet = dict() alphabet = {x[0]: x[1] for x in alpha} alphabet['~'] = ' ' # Принимаем на ввод морзянку и печатаем нормальными буквами return (''.join([alphabet[x] for x in morse_code.strip(' ').replace(' ', ' ~ ').split()]))