Python Challenge aus dem Vorstellungsgespräch - Fremde Nachbarn

preview_player
Показать описание
Heute sehen wir uns eine Frage aus einem Python Job Interview an - könnt ihr sie lösen? * *Meine Website mit allen anderen Kanälen und Newsletter* *:

_Discord:_

_Unterstützt mich - Danke!:_
Рекомендации по теме
Комментарии
Автор

Puhh ich bin gescheitert, sehr spannende Challenge

sugaatime
Автор

Ich fands gar nicht so schwer und hab auch keine Imports außer natürlich random gebraucht.
Gerne mehr davon

LB-qrnv
Автор

non heapq version and only typing imports:


from typing import Union, Optional

def recursive_stack_worker(stack : list[list[Union[str, int]]], _last_letter : str = ''):
if len(stack) == 1: return stack[0][0]*stack[0][1]

stack.sort(key = lambda arg: arg[1]) # sort and resort; not so expensive anymore after first use
j : int = -1

if stack[j][0] == _last_letter: j = -2 # switch letter if it occurred already
letter : str = stack[j][0] # pick letter
stack[j][1] -= 1 # adjust amount of occurences and ...
if stack[j][1] == 0: del stack[j] # ... delete if depleted

return f'{letter}{recursive_stack_worker(stack, _last_letter = letter)}'

def rearrange(s : str, _front_letter : Optional[str] = None) -> str:
if len(s) < 2: return s

if len(s) % 2 == 0: half_s : int = len(s)//2
else: half_s : int = (len(s) + 1)//2

histo : dict[str, int] = {s[0] : 1}
for i, si in enumerate(s[1:], start = 1): # yes I do emulate default dict here ... but Y not
if si in histo:
if histo[si] == half_s: raise AssertionError('exceeded limit!') # impossible to guarantee task description
histo[si] += 1
else: histo[si] = 1

stack: list[list[Union[str, int]]] = []
while histo: # this while loop is a slight hack to convert histo to stack in a memory conservative fashion
for key, value in histo.items(): break # get any pair of (key, value)
del histo[key]
stack.append([key, value])
del half_s, histo # memory management

return recursive_stack_worker(stack)

BRLN
Автор

"wenn wir das hier popen"
"durch popen verschwindet der wert"
gut, wenn man das Video alleine zuhause schaut XD

kaimueller
Автор

Heyoo ich weiß nicht wo ich diesen Kommentar hinschreiben sollte, deswegen hats nun dein neustes Video erwischt.
Also ich habe über meinen Raspberry Pi einen apache2 webserver am laufen mit mariadb (mysql) und phpmyadmin. Hab an meinem router den port 80 freigegeben für die ip meines Raspi´s läuft auch alles supi und ist über die externe ip aus anderen netzwerken und über die interne ip des Raspis zu erreichen. Ändere meine Dokumente über Filezilla da ich mir ein ftp server eingerichtet hab. Nun kommt die Frage. Kann man herausfinden, seit wann der router (meine fritzbox) das letze mal eine neue externe IP zugewiesen bekommen hat? Ich würde ihn nämlich gerne so lange wie möglich unter der gleichen IP extern erreichen können. Hab gelesen, dass meist neue IP´s verteilt werden wenn der Router keine Verbindung (über längere Zeit?) zum Internet herstellen kann. Das würde bei mir bedeuten, quasi jeden tag, da ich immer (wahrscheinlich wegen den Neustarts des Routers) mal kein internet für paar minuten habe. Falls mir irgendjemand aus der Community weiterhelfen könnte, wäre das auch sehr lieb! Einen schönen Tag und grüße aus Frankfurt!

katanakiri