2813 - Note

From Bitnami MediaWiki

Cerinţa

Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate din litere mari ale alfabetului englez și sunt separate prin câte un spațiu.

Scrieți un program care citește de la tastatură un text de tipul menționat mai sus și afișează pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul nu exista.

Date de intrare

Programul citește de la tastatură un text de tipul menționat.

Date de ieșire

Programul va afișa pe ecran, pe câte un rând, cuvintele care cuprind cel puțin o notă muzicală. Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul nu exista.

Restricţii şi precizări

  • cuvintele vor fi afișate în ordinea din text
  • notele muzicale sunt DO, RE, MI, FA, SOL, LA, SI.

Exemplul 1

Intrare
REMI DOMINO SI KHANHOO SUNT DENUMIRI DE JOCURI CE AU ASPECTE SIMILARE
Iesire
Datele de intrare corespund restrictiilor impuse
REMI
DOMINO
SI
DENUMIRI
SIMILARE


Exemplu 2

Intrare
remi domino si khanhoo sunt denumiri de jocuri ce au aspecte similare
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare

<syntaxhighlight lang="python" line> def main():

   # Citirea șirului de caractere de la tastatură
   sir = input().strip()
   # Verifică dacă șirul respectă restricțiile
   if len(sir) > 100:
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   if any(not caracter.isupper() and not caracter.isspace() for caracter in sir):
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   print("Datele de intrare corespund restrictiilor impuse")
   # Afișarea cuvintelor care cuprind cel puțin o notă muzicală
   note_muzicale = ['DO', 'RE', 'MI', 'FA', 'SOL', 'LA', 'SI']
   cuvinte = sir.split()
   cuvinte_cu_note = [cuvant for cuvant in cuvinte if any(nota in cuvant for nota in note_muzicale)]
   # Verifică dacă există cuvinte care cuprind cel puțin o notă muzicală și afișează rezultatul
   if cuvinte_cu_note:
       for cuvant in cuvinte_cu_note:
           print(cuvant)
   else:
       print("nu exista")


if __name__ == "__main__":

   main()

</syntaxhighlight>