0188 - Inlocuire Cuvant

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Se dau două cuvinte a şi b şi o propoziţie s formată numai din litere mici ale alfabetului englez şi spaţii.

Cerinţa

Să se modifice s, înlocuind fiecare apariţie a cuvântului a cu cuvântul b.

Date de intrare

Fişierul de intrare inlocuirecuvantin.txt conţine pe prima linie cuvintele a şi b, separate printr-un spaţiu, iar pe a doua linie propoziţia s.

Date de ieșire

Fişierul de ieşire inlocuirecuvantout.txt va conţine pe prima linie propoziţia s, modificată în conformitate cu cerinţa.

Restricţii şi precizări

  • propoziţia s va avea cel mult 100 caractere
  • cuvintele a şi b vor avea cel mult 10 caractere
  • cuvintele sunt formate numai din litere mici ale alfabetului englez

Exemplul 1

inlocuirecuvantin.txt
dar insa
dar nu trebuie dar e mai bine astfel
inlocuirecuvantout.txt
Datele de intrare corespund restrictiilor impuse
insa nu trebuie insa e mai bine astfel


Exemplul 2

inlocuirecuvantin.txt
dar neînsemnând
dar nu trebuie dar e mai bine astfel
inlocuirecuvantout.txt
Datele de intrare nu corespund restrictiilor impuse


Rezolvare

def main():
    # Citirea cuvintelor și a propoziției din fișierul 'inlocuirecuvant.in'
    with open('inlocuirecuvantin.txt', 'r') as f:
        a, b = f.readline().strip().split()
        s = f.readline().strip()

    # Verifică dacă cuvintele și propoziția respectă restricțiile
    if len(a) > 10 or len(b) > 10 or len(s) > 100 or not (a.isalpha()
    and b.isalpha() and all(c.isalpha() or c.isspace() for c in s)):
        result = "Datele de intrare nu corespund restrictiilor impuse"
    else:
        result = "Datele de intrare corespund restrictiilor impuse"

        # Înlocuirea fiecărei apariții a cuvântului a cu cuvântul b în propoziție
        s_noua = s.replace(a, b)
        result += "\n" + s_noua

    # Scrierea rezultatului în fișierul 'inlocuirecuvant.out'
    with open('inlocuirecuvantout.txt', 'w') as f:
        f.write(result)


if __name__ == "__main__":
    main()