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

JZLICZ - Zliczacz liter SPOJ

0 głosów
502 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 371 wizyt
pytanie zadane 30 marca 2020 w Java przez Fesq Nowicjusz (170 p.)
0 głosów
1 odpowiedź 1,058 wizyt
pytanie zadane 17 listopada 2016 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 847 wizyt
pytanie zadane 24 czerwca 2020 w C i C++ przez dernis Nowicjusz (120 p.)

93,742 zapytań

142,678 odpowiedzi

323,299 komentarzy

63,326 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...