0887 - Nr Anagrame: Difference between revisions
Pagină nouă: == Cerinţa == Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Să se determine câte cuvinte din sir sunt anagrame ale ultimului cuvânt, fără a fi identice cu acesta == Date de intrare == Programul va citi de la tastatură şirul dat. == Date de ieșire == Programul va afişa pe ecran un număr '''C''', reprezentând valoarea cerută. == Restricţii şi precizări == * șirul dat va... |
|||
(One intermediate revision by the same user not shown) | |||
Line 7: | Line 7: | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
* șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații | * șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
arc ingrat din granit car argint arc rating rac argint | arc ingrat din granit car argint arc rating rac argint | ||
Line 14: | Line 14: | ||
3 | 3 | ||
<br> | <br> | ||
== | |||
== Exemplul 2 == | |||
; Intrare | ; Intrare | ||
ARC ingrat din granit car argint arc rating rac argint | ARC ingrat din granit car argint arc rating rac argint | ||
Line 20: | Line 21: | ||
Datele de intrare nu corespund restrictiilor impuse | Datele de intrare nu corespund restrictiilor impuse | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> |
Latest revision as of 18:26, 25 December 2023
Cerinţa[edit | edit source]
Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Să se determine câte cuvinte din sir sunt anagrame ale ultimului cuvânt, fără a fi identice cu acesta
Date de intrare[edit | edit source]
Programul va citi de la tastatură şirul dat.
Date de ieșire[edit | edit source]
Programul va afişa pe ecran un număr C, reprezentând valoarea cerută.
Restricţii şi precizări[edit | edit source]
- șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații
Exemplul 1[edit | edit source]
- Intrare
arc ingrat din granit car argint arc rating rac argint
- Iesire
Datele de intrare corespund restrictiilor impuse 3
Exemplul 2[edit | edit source]
- Intrare
ARC ingrat din granit car argint arc rating rac argint
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def main():
# Citirea șirului de la tastatură sir = input().strip()
# Verifică dacă șirul respectă restricțiile if len(sir) > 255 or not all(c.islower() or c.isspace() for c in sir): print("Datele de intrare nu corespund restrictiilor impuse") return
print("Datele de intrare corespund restrictiilor impuse")
# Separarea șirului în cuvinte cuvinte = sir.split()
# Obținerea ultimului cuvânt și a anagramei sale ultimul_cuvant = cuvinte[-1] anagrama = sorted(ultimul_cuvant)
# Calcularea numărului de cuvinte care sunt anagrame ale ultimului cuvânt, dar nu sunt identice cu acesta numar_cuvinte = sum(sorted(cuvant) == anagrama and cuvant != ultimul_cuvant for cuvant in cuvinte[:-1])
# Afișarea numărului de cuvinte print(numar_cuvinte)
if __name__ == "__main__":
main()
</syntaxhighlight>