Size: a a a

Советский Angular

2020 July 24

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
я у себя кое-что поправил
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
кто хочет мое решение посмотреть?)
источник

NI

Nabi Isakhanov in Советский Angular
Вертихвост キバ 🏡🦊
кто хочет мое решение посмотреть?)
+
источник

hm

hime mononoke in Советский Angular
А вот вопрос, есть json файл в нем хранятся данные, которые могут быть вложены в друг друга к примеру
{
"fio":
 {
   "f":"tretyak"
   }
}
Как узнать уровень вложенности и обойти данный json файл?
источник

hm

hime mononoke in Советский Angular
Вертихвост キバ 🏡🦊
кто хочет мое решение посмотреть?)
Давай
источник

hm

hime mononoke in Советский Angular
Я себе голову сломал
источник

NI

Nabi Isakhanov in Советский Angular
hime mononoke
А вот вопрос, есть json файл в нем хранятся данные, которые могут быть вложены в друг друга к примеру
{
"fio":
 {
   "f":"tretyak"
   }
}
Как узнать уровень вложенности и обойти данный json файл?
рекурсивно наверно
источник

IB

Igor Bodnar in Советский Angular
Вертихвост キバ 🏡🦊
я у себя кое-что поправил
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Вертихвост キバ 🏡🦊
✨🦄 Три лошади

Лошадям нужна еда, они едят овес. Каждый день фермер привозит овес для лошадей. Овес находится в разных пачках от 0 до 9 кг. Надо взять эти пачки и накормить лошадей поровну.

Есть список цифр [ n1, n2, n3, … ]. Необходимо найти самое большое число, которое можно получить комбинируя эти цифры и которое бы делилось на 3.

☝️ ПРИМЕР 1
 Input:     [3, 1, 4, 1]
 Output:  4311

✌️ ПРИМЕР 2
 Input:     [3, 1, 4, 1, 5, 9]
 Output:  94311
def solution(numbers):
   numbers = sorted(numbers, reverse=True)

   divisibleByThree = list(filter(
       divisible(modulus=3, remainder=0), numbers))
   withRemainderOne = list(filter(
       divisible(modulus=3, remainder=1), numbers))
   withRemainderTwo = list(filter(
       divisible(modulus=3, remainder=2), numbers))

   result = []
   result.extend(divisibleByThree)
   
   while len(withRemainderOne) >= 2 and len(withRemainderTwo) >= 2:
       n1 = withRemainderOne[:1]
       del withRemainderOne[:1]
       result.extend(n1)

       n2 = withRemainderTwo[:1]
       del withRemainderTwo[:1]
       result.extend(n2)

   while len(withRemainderOne) >= 3:
       n = withRemainderOne[:3]
       del withRemainderOne[:3]
       result.extend(n)

   while len(withRemainderTwo) >= 3:
       n = withRemainderTwo[:3]
       del withRemainderTwo[:3]
       result.extend(n)
   
   while len(withRemainderOne) >= 1 and len(withRemainderTwo) >= 1:
       n1 = withRemainderOne[:1]
       del withRemainderOne[:1]
       result.extend(n1)

       n2 = withRemainderTwo[:1]
       del withRemainderTwo[:1]
       result.extend(n2)

   if len(result) == 0:
       return 0

   result = sorted(result, reverse=True)
   return format(result)

def divisible(modulus, remainder):
   return lambda x: x % modulus == remainder

def format(numbers):
   return int("".join(map("{:.0f}".format, numbers)))


cc @boringdev
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
@ibodnar как тебе?)
источник

IB

Igor Bodnar in Советский Angular
А куда делся кейс
{
     "input": [
       3,
       7,
       7,
       1,
       0,
       4,
       1,
       6,
       3,
       3,
       3,
       9,
       0,
       4,
       1,
       9,
       0,
       6,
       0,
       6,
       7
     ],
     "output": "9977766644333310000"
   }
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Igor Bodnar
А куда делся кейс
{
     "input": [
       3,
       7,
       7,
       1,
       0,
       4,
       1,
       6,
       3,
       3,
       3,
       9,
       0,
       4,
       1,
       9,
       0,
       6,
       0,
       6,
       7
     ],
     "output": "9977766644333310000"
   }
9977766644333310000
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
я нарандомил кейсы
источник

IB

Igor Bodnar in Советский Angular
Вертихвост キバ 🏡🦊
я нарандомил кейсы
Я к тому что во втором наборе его не было, а у меня на нем падало
источник

N👩

Nikita 👩🏻‍💻💭... in Советский Angular
Вертихвост キバ 🏡🦊
def solution(numbers):
   numbers = sorted(numbers, reverse=True)

   divisibleByThree = list(filter(
       divisible(modulus=3, remainder=0), numbers))
   withRemainderOne = list(filter(
       divisible(modulus=3, remainder=1), numbers))
   withRemainderTwo = list(filter(
       divisible(modulus=3, remainder=2), numbers))

   result = []
   result.extend(divisibleByThree)
   
   while len(withRemainderOne) >= 2 and len(withRemainderTwo) >= 2:
       n1 = withRemainderOne[:1]
       del withRemainderOne[:1]
       result.extend(n1)

       n2 = withRemainderTwo[:1]
       del withRemainderTwo[:1]
       result.extend(n2)

   while len(withRemainderOne) >= 3:
       n = withRemainderOne[:3]
       del withRemainderOne[:3]
       result.extend(n)

   while len(withRemainderTwo) >= 3:
       n = withRemainderTwo[:3]
       del withRemainderTwo[:3]
       result.extend(n)
   
   while len(withRemainderOne) >= 1 and len(withRemainderTwo) >= 1:
       n1 = withRemainderOne[:1]
       del withRemainderOne[:1]
       result.extend(n1)

       n2 = withRemainderTwo[:1]
       del withRemainderTwo[:1]
       result.extend(n2)

   if len(result) == 0:
       return 0

   result = sorted(result, reverse=True)
   return format(result)

def divisible(modulus, remainder):
   return lambda x: x % modulus == remainder

def format(numbers):
   return int("".join(map("{:.0f}".format, numbers)))


cc @boringdev
ваау
источник

N👩

Nikita 👩🏻‍💻💭... in Советский Angular
классно
источник

IB

Igor Bodnar in Советский Angular
Вертихвост キバ 🏡🦊
def solution(numbers):
   numbers = sorted(numbers, reverse=True)

   divisibleByThree = list(filter(
       divisible(modulus=3, remainder=0), numbers))
   withRemainderOne = list(filter(
       divisible(modulus=3, remainder=1), numbers))
   withRemainderTwo = list(filter(
       divisible(modulus=3, remainder=2), numbers))

   result = []
   result.extend(divisibleByThree)
   
   while len(withRemainderOne) >= 2 and len(withRemainderTwo) >= 2:
       n1 = withRemainderOne[:1]
       del withRemainderOne[:1]
       result.extend(n1)

       n2 = withRemainderTwo[:1]
       del withRemainderTwo[:1]
       result.extend(n2)

   while len(withRemainderOne) >= 3:
       n = withRemainderOne[:3]
       del withRemainderOne[:3]
       result.extend(n)

   while len(withRemainderTwo) >= 3:
       n = withRemainderTwo[:3]
       del withRemainderTwo[:3]
       result.extend(n)
   
   while len(withRemainderOne) >= 1 and len(withRemainderTwo) >= 1:
       n1 = withRemainderOne[:1]
       del withRemainderOne[:1]
       result.extend(n1)

       n2 = withRemainderTwo[:1]
       del withRemainderTwo[:1]
       result.extend(n2)

   if len(result) == 0:
       return 0

   result = sorted(result, reverse=True)
   return format(result)

def divisible(modulus, remainder):
   return lambda x: x % modulus == remainder

def format(numbers):
   return int("".join(map("{:.0f}".format, numbers)))


cc @boringdev
а когда ты питоном увлекся?
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Igor Bodnar
а когда ты питоном увлекся?
лет 7-8 назад
источник

IB

Igor Bodnar in Советский Angular
хех
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
но я давно на нем не писал
источник