Size: a a a

Чат по руби

2020 June 27

И

Иван in Чат по руби
аа, я думал ты про вторую
источник

И

Иван in Чат по руби
хотя и ее наверно можно в 1 строку сделать, но это будет страшная и большая строка скорее всего :)
источник

P

Paul in Чат по руби
вторая чуть больше )
источник

P

Paul in Чат по руби
ага, можно
источник

P

Paul in Чат по руби
вторую можно так решить:
def solution(ranks)
 sum = 0
 groups = ranks.group_by { |e| e }.map { |key, val| [key, val.length] }.to_h
 groups.each { |key, val| sum += val if groups[key + 1] }
 sum
end
источник

P

Paul in Чат по руби
от sum можно избавиться с помощью inject
источник

P

Paul in Чат по руби
две строки будет в итоге
источник

PT

Pineapple Thief in Чат по руби
а не проще ли ranks.each_with_object(Hash.new(0)) { |rank,counts| counts[rank] += 1 }
источник

PT

Pineapple Thief in Чат по руби
что-то мне подсказывает, что это быстрее чем .group_by, .map, и .to_h вдобавок
источник

P

Paul in Чат по руби
ну да, так лучше
источник

PT

Pineapple Thief in Чат по руби
да и интуитивнее понятнее, чем, окей, берет массииив, конвертим в хэш массивов, мэпим хэш массивов в массив массиво, конвертим снова в хэш
источник

PT

Pineapple Thief in Чат по руби
ну и да, чет подсказывает что это не линейно ни разу и аллокаций поболя там будет
источник

PT

Pineapple Thief in Чат по руби
бонусные очки за Hash.new со значением по умолчанию))
источник

И

Иван in Чат по руби
да тут без тестов не узнаешь, не всегда дополниьельный map означает еще 1 реальный прогон по массиву
источник

P

Paul in Чат по руби
Pineapple Thief
да и интуитивнее понятнее, чем, окей, берет массииив, конвертим в хэш массивов, мэпим хэш массивов в массив массиво, конвертим снова в хэш
главное, чтобы линейные и интуитивно понятные решения приходили во время собесов и тестов.
источник

PT

Pineapple Thief in Чат по руби
Иван
да тут без тестов не узнаешь, не всегда дополниьельный map означает еще 1 реальный прогон по массиву
а тут не один массив, тут разной формы объекты аллоцируются
источник

PT

Pineapple Thief in Чат по руби
чтобы итераторы протаскивались, хотя бы объекты должны быть совместимые в них между собой)
источник

Т

Тимофей in Чат по руби
Paul
главное, чтобы линейные и интуитивно понятные решения приходили во время собесов и тестов.
А первая задача где? Не нашел в чате
источник

P

Paul in Чат по руби
Paul
для первой задачи? там было просто — написать функцию, которая принимает int(1..5) и строку, строка это число инт текстом, надо было перемножить
^
источник
2020 June 28

Д

Дима in Чат по руби
Здравствуйте. Я новичок. Запутался с массивами. Вопросы:
1) Правильно ли я понимаю, что элемент массива имеет свой класс "Массив" - "Array"?
Приложил принтскрин. На нем листинги двух программ: на первой я загружаю в свой массив все методы класса Integer и хочу найти, есть ли в нем вводимое мной имя метода.
2.1) Почему поиск работает только если я привожу элемент к классу String? Это из-за того, что я описал в вопросе 1? Или что-то неправильно делаю?
2.2) Почему во второй программе поиск элемента массива нормально происходит без приведения к классу String? Смысл же ведь такой же, как и в первом листинге...
источник