0200 - Eliminare Subsir 1

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Se dau două şiruri de caractere s şi t. Să se elimine din s toate apariţiile lui t.

Date de intrare[edit | edit source]

Programul citește de la tastatură cele două şiruri, s, respectiv t, separate prin caracterul NewLine.

Date de ieșire[edit | edit source]

Programul afișează pe ecran şirul s, obţinut după transformarea cerută.

Restricţii şi precizări[edit | edit source]

  • cele două şiruri conţin cel mult 255 caractere.

Exemplul 1[edit | edit source]

Intrare
ana si mariana canta la nai
na
Iesire
Datele de intrare corespund restrictiilor impuse
ana si mariana canta la i


Exemplul 2[edit | edit source]

Intrare
Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

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

   # Citirea șirurilor de la tastatură
   s = input().strip()
   t = input().strip()
   # Verifică dacă șirurile respectă restricțiile
   if len(s) > 255 or len(t) > 255:
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   print("Datele de intrare corespund restrictiilor impuse")
   # Găsirea ultimei apariții a lui t în s
   pozitie = s.rfind(t)
   # Verificarea dacă t a fost găsit în s
   if pozitie != -1:
       # Eliminarea ultimei apariții a lui t din s
       s_nou = s[:pozitie] + s[pozitie + len(t):]
   else:
       s_nou = s
   # Afișarea noului șir
   print(s_nou)


if __name__ == "__main__":

   main()

</syntaxhighlight>