• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

schemat blokowy python

Object Storage Arubacloud
0 głosów
1,546 wizyt
pytanie zadane 22 czerwca 2019 w Python przez Perek3333 Nowicjusz (160 p.)

Cześć, potrzebuje pomocy w zrobieniu schematu blokowego algorytmu. Narazie mam to: 

Start.          -->      Wczytaj String       -->   idx_prev_delimiter = -1 idx_before = -1 idx_after = -1 max_length = 0 current_length = 0         -->      string[i]==' ' || string[i]==',' || string[i]=='.'     -->.       if current lenght  >  max length    -----(dla prawdy)-->   max_length = current_length idx_after = i idx_before = idx_prev_delimiter      (dla fałszu ) 

Dalej nwm jak rozpisać, myśle, ze jest czytelne.

 

def string_from_file(path):
    with open(path) as f:
        string = f.read()
    return string

def longest_word(string): # complexity: O(n)
    delimeters = {'.', ' ', ','}
    idx_prev_delimiter = -1
    idx_before = -1
    idx_after = -1
    max_length = 0
    current_length = 0
    for i in range(len(string)):
        if string[i] in delimeters:
            if(current_length > max_length):
                max_length = current_length
                idx_after = i
                idx_before = idx_prev_delimiter
            current_length = 0
            idx_prev_delimiter = i
        else:
            current_length += 1
    if(current_length > max_length):
        idx_before = idx_prev_delimiter
        idx_after = len(string)
    return string[idx_before + 1: idx_after]

string = ",algorytm.schemat blokowy. b." # string_from_file(path_to_file)
longest_word(string) 

 

 

 

 

1 odpowiedź

0 głosów
odpowiedź 22 czerwca 2019 przez reaktywny Nałogowiec (40,990 p.)
edycja 22 czerwca 2019 przez reaktywny

Sam pisałeś funkcję longest_word? Bo można ja mocno uprościć / skrócić.

 

def longest_word(string):  # complexity: O(n)
    string = string.replace(',', ' '). replace('.', ' ')
    words = string.split()
    return max(words, key=len)

string = ",algorytm.schemat blokowy. b.schemacik, blokowy, nie, aa, B."  # 
print(longest_word(string))

 

Można też użyć wyrażenia regularne ( moduł re i metodę  re.split(delimeters, string) )

Podobne pytania

+1 głos
1 odpowiedź 516 wizyt
pytanie zadane 15 listopada 2021 w C i C++ przez asapjack Nowicjusz (130 p.)
0 głosów
1 odpowiedź 517 wizyt
+1 głos
1 odpowiedź 348 wizyt
pytanie zadane 5 stycznia 2021 w Algorytmy przez monia79wawa Nowicjusz (190 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...