2673 - Swap Cuv: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor: ; Primul Ultimul Al Doilea Penultimul ... == Date de intrare == Programul citește de la tastatură șirul dat. == Date de ieșire == Programul va afișa pe ecran cate...
 
 
(One intermediate revision by the same user not shown)
Line 13: Line 13:
== Restricţii şi precizări ==
== Restricţii şi precizări ==
* propoziția va conține cel mult 255 de caractere
* propoziția va conține cel mult 255 de caractere
== Exemplu 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
  divide and conquer / devide et impera.
  divide and conquer / devide et impera.
Line 25: Line 25:
  devide
  devide
<br>
<br>
== Exemplu 2 ==
 
== Exemplul 2 ==
; Intrare
; Intrare
  Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.
  Loremipsumdolorsitamet,consecteturadipiscingelit.Nullafacilisi.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.Nullamelementumleoacorcicongue,infringillanisleuismod.Sedaliquet,elit eupellentesqueaccumsanjusitocursuslacus,idhendreritnisl.
Line 31: Line 32:
  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 17:31, 25 December 2023

Cerinţa[edit | edit source]

Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor:

Primul
Ultimul
Al Doilea
Penultimul
...

Date de intrare[edit | edit source]

Programul citește de la tastatură șirul dat.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran cate o linie cuvintele în funcție de cerintă.

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

  • propoziția va conține cel mult 255 de caractere

Exemplul 1[edit | edit source]

Intrare
divide and conquer / devide et impera.
Iesire
Datele de intrare corespund restrictiilor impuse
divide
impera
and
et
conquer
devide


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> import re

def main():

   # Citirea șirului de caractere de la tastatură
   sir = input().strip()
   # Verifică dacă șirul respectă restricțiile
   if len(sir) > 255:
       print("Datele de intrare nu corespund restrictiilor impuse")
       return
   # Afișarea mesajului de confirmare
   print("Datele de intrare corespund restrictiilor impuse")
   # Separarea cuvintelor din șir
   cuvinte = re.findall(r'\b\w+\b', sir)
   # Afișarea cuvintelor în ordinea cerută
   i = 0
   j = len(cuvinte) - 1
   while i <= j:
       if i == j:
           print(cuvinte[i])
       else:
           print(cuvinte[i])
           print(cuvinte[j])
       i += 1
       j -= 1


if __name__ == "__main__":

   main()

</syntaxhighlight>