3112 - Bac Cuvinte
Cerinţa
Într-un text cu cel mult 100 de caractere cuvintele sunt formate numai din litere mari și mici 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 precizat, apoi un număr natural, n, n∈[1,100), şi afişează pe ecran, pe linii separate, cuvintele din text care au exact n litere. Cuvintele sunt afișate în ordinea apariției lor în text, iar dacă nu există niciun astfel de cuvânt, se afișează pe ecran mesajul nu exista.
Date de intrare
Programul citește de la tastatură numărul textul dat, apoi numărul n.
Date de ieșire
Programul va afișa pe ecran cuvintele din text cu exact n litere, fiecare pe câte o linie.
Restricţii şi precizări
- 1 ⩽ n ⩽ 100
- textul conține cel mult 100 de caractere; cuvintele sunt formate numai din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu
Exemplul 1
- Intrare
Fat Frumos este cel mai viteaz 6
- Iesire
Datele de intrare corespund restrictiilor impuse Frumos viteaz
Exemplu 2
- Intrare
catalin1234 10
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare
<syntaxhighlight lang="python" line> def main():
# Citirea textului și a numărului de la tastatură text = input().strip() n = int(input().strip())
# Verifică dacă textul respectă restricțiile if len(text) > 100: print("Datele de intrare nu corespund restrictiilor impuse") return if any(not cuvant.isalpha() for cuvant in text.split()): print("Datele de intrare nu corespund restrictiilor impuse") return if any(len(cuvant) > 100 for cuvant in text.split()): print("Datele de intrare nu corespund restrictiilor impuse") return
print("Datele de intrare corespund restrictiilor impuse")
# Obținerea listei de cuvinte cu exact n litere cuvinte = [cuvant for cuvant in text.split() if len(cuvant) == n]
# Verifică dacă există cuvinte în text cu exact n litere și afișează rezultatul if cuvinte: for cuvant in cuvinte: print(cuvant) else: print("nu exista")
if __name__ == "__main__":
main()
</syntaxhighlight>