2794 - Codificare: Difference between revisions
Adina Timiș (talk | contribs) Pagină nouă: ==Cerința== Fiind dat un cuvânt s, format numai din litere, și un cod c, de aceeași lungime cu s, format numai din cifre, numim codificare a lui s pe baza codului c operația de construire a unui nou șir, în care inițial se copiază prima literă din s, apoi, parcurgând de la stânga la dreapta restul șirului s, se adaugă litera curentă la începutul noului șir, dacă cifra corespunzătoare de pe aceeași poziție în c este pară, sau la finalul noului șir, în... |
Adina Timiș (talk | contribs) No edit summary |
||
Line 22: | Line 22: | ||
:cod incorect | :cod incorect | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line=""> | <syntaxhighlight lang="python" line="1"> | ||
#2794 - Codificare | #2794 - Codificare | ||
Line 36: | Line 36: | ||
return codificat | return codificat | ||
if __name__ == '__main__': | |||
s = input().strip() # citește primul șir de caractere | s = input().strip() # citește primul șir de caractere | ||
c = input().strip() # citește al doilea șir de caractere | c = input().strip() # citește al doilea șir de caractere | ||
Line 45: | Line 45: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 21:42, 23 April 2023
Cerința[edit | edit source]
Fiind dat un cuvânt s, format numai din litere, și un cod c, de aceeași lungime cu s, format numai din cifre, numim codificare a lui s pe baza codului c operația de construire a unui nou șir, în care inițial se copiază prima literă din s, apoi, parcurgând de la stânga la dreapta restul șirului s, se adaugă litera curentă la începutul noului șir, dacă cifra corespunzătoare de pe aceeași poziție în c este pară, sau la finalul noului șir, în caz contrar. Scrieţi un program care citește de la tastatură, de pe linii diferite, două cuvinte, notate cu s și c, fiecare având cel mult 100 de caractere, s fiind format doar din litere mici ale alfabetului englez, iar c fiind format doar din cifre. Programul construiește în memorie și afișează pe ecran cuvântul obținut prin codificarea lui s pe baza lui c, dacă cele două cuvinte au aceeași lungime, sau mesajul cod incorect, în caz contrar.
Date de intrare[edit | edit source]
Programul citește de la tastatură, de pe linii diferite, cele două cuvinte s și c
Date de ieșire[edit | edit source]
Restricții și precizări[edit | edit source]
- cuvintele citite au cel mult 100 de caractere;
Exemplul 1[edit | edit source]
- Intrare
- etalon
- 025843
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- oltean
Exemplul 2[edit | edit source]
- Intrare
- vapor
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
- cod incorect
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 2794 - Codificare
def codificare(s, c):
if len(s) != len(c): # verifică dacă cele două șiruri au aceeași lungime return "cod incorect" # în cazul în care lungimea nu e aceeași, returnează mesajul codificat = s[0] # începe cu primul caracter for i in range(1, len(s)): if int(c[i]) % 2 == 0: # dacă c[i] este par codificat = s[i] + codificat # adaugă s[i] înaintea primului caracter din codificat else: codificat += s[i] # adaugă s[i] după ultimul caracter din codificat return codificat
if __name__ == '__main__':
s = input().strip() # citește primul șir de caractere c = input().strip() # citește al doilea șir de caractere if len(s) <= 100 and len(c) <= 100: # verifică dacă șirurile au lungimea mai mică sau egală cu 100 print("Datele de intrare corespund restricțiilor impuse.") print(codificare(s, c)) # aplică funcția codificare pe cele două șiruri și afișează rezultatul else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>