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

JZLICZ - Zliczacz liter SPOJ

Object Storage Arubacloud
0 głosów
304 wizyt
pytanie zadane 6 marca 2022 w Python przez ambitny Nowicjusz (120 p.)

Cześć!  To moje początki ze SPOJem i z językiem Python. Sędzia nie przyjmuje mojego kodu. Nie wiem jak posortować dziennik zaczynając od małych liter. Domyślam się również, że nie jest to optymalny kod może jakaś sugestia do optymalizacji? Z góry dzięki!

Link do zadania: https://pl.spoj.com/problems/JZLICZ/

Kod:

from collections import OrderedDict
m = int(input())
lista=[]
alfabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

for _ in range(m):
  sentence = input()
  lista.append(sentence)
suma=lista[0]+lista[1]
dict = {}

for n in range(len(suma)):
  for b in range(len(alfabet)):
    if suma[n] == alfabet[b]:
      dict[alfabet[b]] = suma.count(alfabet[b])

dict1 = OrderedDict(sorted(dict.items()))
keys = dict1.keys()
suma=list(keys)

for n in range(len(suma)):
  for b in range(len(alfabet)):
    if suma[n] == alfabet[b]:
      if dict1.get(alfabet[b]) != None:
        print(alfabet[b],dict1.get(alfabet[b]))
      if suma.count(alfabet[b]) > 1:
        if dict1.get(alfabet[b]) != None:
          del dict1[alfabet[b]]

 

 

1 odpowiedź

0 głosów
odpowiedź 8 marca 2022 przez Inn Gaduła (4,300 p.)
edycja 8 marca 2022 przez Inn

Cześć,

Na początku przygody z programowaniem do rozwiązywania tego typu zadań radziłbym używać funkcji.
Funkcję zwiększą czytelność twojego kodu oraz pozwolą Ci podzielić zadanie na pomniejsze fragmenty.

Introduction to Python Functions

Nie będę ukrywał, że czytanie twojego kodu nie należało do najprzyjemniejszych czynności, ale to totalnie zrozumiałe skoro jesteś początkujący, musisz jednak zwracać uwagę na czytelność kodu.

Po co dbać o jakość kodu?
Best Practices to Make Your Python More Readable

Proszę nie zrażaj się przez mój komentarz, z czasem wszystkie te zasady będziesz stosował w swoim kodzie
automatycznie, na pocieszenie mogę powiedzieć, że kod jest już bliski rozwiązania smiley


Na początek przyjrzałbym się co w sytuacji kiedy wprowadzamy do programu więcej niż 2 linie tekstu.
 

suma=lista[0]+lista[1]

 

Podobne pytania

0 głosów
0 odpowiedzi 237 wizyt
pytanie zadane 30 marca 2020 w Java przez Fesq Nowicjusz (170 p.)
0 głosów
1 odpowiedź 545 wizyt
pytanie zadane 17 listopada 2016 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 371 wizyt
pytanie zadane 24 czerwca 2020 w C i C++ przez dernis Nowicjusz (120 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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!

...