0799 - Eliminare Litera: Diferență între versiuni
De la Universitas MediaWiki
Linia 5: | Linia 5: | ||
== Date de ieșire == | == Date de ieșire == | ||
Programul afișează pe ecran textul obţinut, iar dacă nu există niciun cuvânt modificat, afișează pe ecran mesajul '''nu exista'''. | Programul afișează pe ecran textul obţinut, iar dacă nu există niciun cuvânt modificat, afișează pe ecran mesajul '''nu exista'''. | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
pictura prin aceea arata o pace profunda | pictura prin aceea arata o pace profunda | ||
Linia 12: | Linia 12: | ||
picura prin acea arta o pace profunda | picura prin acea arta o pace profunda | ||
<br> | <br> | ||
== Exemplul 2 == | == Exemplul 2 == | ||
; Intrare | ; Intrare |
Versiunea curentă din 25 decembrie 2023 18:21
Cerinţa
Să se scrie un program care citește un șir de caractere în care cuvintele sunt formate numai din litere mici ale alfabetului englez și sunt separate prin câte un spațiu și elimină litera din mijloc a fiecărui cuvânt cu număr impar de litere (cel puțin trei).
Date de intrare
Programul citește de la tastatură un șir de cel mult 100 caractere
Date de ieșire
Programul afișează pe ecran textul obţinut, iar dacă nu există niciun cuvânt modificat, afișează pe ecran mesajul nu exista.
Exemplul 1
- Intrare
pictura prin aceea arata o pace profunda
- Iesire
Datele de intrare corespund restrictiilor impuse picura prin acea arta o pace profunda
Exemplul 2
- Intrare
Loremipsumdolorsitamet,consecteturadipiscingelit.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare
def main():
# Citirea șirului de la tastatură
sir = input().strip()
# Verifică dacă șirul respectă restricțiile
if len(sir) > 100 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()
# Crearea unei liste pentru a stoca cuvintele modificate
cuvinte_modificate = []
# Parcurgerea cuvintelor și eliminarea literei din mijloc a fiecărui cuvânt cu număr impar de litere
for cuvant in cuvinte:
if len(cuvant) % 2 == 1 and len(cuvant) >= 3:
mijloc = len(cuvant) // 2
cuvant_nou = cuvant[:mijloc] + cuvant[mijloc + 1:]
cuvinte_modificate.append(cuvant_nou)
else:
cuvinte_modificate.append(cuvant)
# Verificarea dacă există cuvinte modificate
if cuvinte_modificate == cuvinte:
print("nu exista")
else:
print(" ".join(cuvinte_modificate))
if __name__ == "__main__":
main()