<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3543_-_StringPushPop</id>
	<title>3543 - StringPushPop - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3543_-_StringPushPop"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3543_-_StringPushPop&amp;action=history"/>
	<updated>2026-05-01T23:21:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3543_-_StringPushPop&amp;diff=9753&amp;oldid=prev</id>
		<title>Cristina94: Pagină nouă: ==Cerința== Se dă un string s. Asupra acestuia, se aplică 5 tipuri de operații: *(1, c) – se adaugă caracterul c la începutul string-ului *(2, c) – se adaugă caracterul c la finalul string-ului *(3) – se șterge primul caracter al string-ului *(4) – se șterge ultimul caracter al string-ului *(5) – string-ul se va transforma în răsturnatul său Să se afișeze string-ul rezultat după cele q operații.  ==Date de intrare== Programul citește de la tastatur...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3543_-_StringPushPop&amp;diff=9753&amp;oldid=prev"/>
		<updated>2024-04-01T12:06:20Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: ==Cerința== Se dă un string s. Asupra acestuia, se aplică 5 tipuri de operații: *(1, c) – se adaugă caracterul c la începutul string-ului *(2, c) – se adaugă caracterul c la finalul string-ului *(3) – se șterge primul caracter al string-ului *(4) – se șterge ultimul caracter al string-ului *(5) – string-ul se va transforma în răsturnatul său Să se afișeze string-ul rezultat după cele q operații.  ==Date de intrare== Programul citește de la tastatur...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Cerința==&lt;br /&gt;
Se dă un string s. Asupra acestuia, se aplică 5 tipuri de operații:&lt;br /&gt;
*(1, c) – se adaugă caracterul c la începutul string-ului&lt;br /&gt;
*(2, c) – se adaugă caracterul c la finalul string-ului&lt;br /&gt;
*(3) – se șterge primul caracter al string-ului&lt;br /&gt;
*(4) – se șterge ultimul caracter al string-ului&lt;br /&gt;
*(5) – string-ul se va transforma în răsturnatul său&lt;br /&gt;
Să se afișeze string-ul rezultat după cele q operații.&lt;br /&gt;
&lt;br /&gt;
==Date de intrare==&lt;br /&gt;
Programul citește de la tastatură string-ul s, numărul natural q si cele q query-uri.&lt;br /&gt;
&lt;br /&gt;
==Date de ieșire==&lt;br /&gt;
Programul va afișa pe ecran string-ul rezultat.&lt;br /&gt;
&lt;br /&gt;
==Restricții și precizări==&lt;br /&gt;
*q si lungimea inițială a lui s sunt mai mici sau egale decat 100.000&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:fnic&lt;br /&gt;
:7&lt;br /&gt;
:1 a&lt;br /&gt;
:3&lt;br /&gt;
:4&lt;br /&gt;
:1 o&lt;br /&gt;
:2 b&lt;br /&gt;
:5&lt;br /&gt;
:1 p&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:pbinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exemplul 1==&lt;br /&gt;
;Intrare&lt;br /&gt;
:abc&lt;br /&gt;
:-3&lt;br /&gt;
&lt;br /&gt;
;Ieșire&lt;br /&gt;
:Date invalide: lungimea string-ului sau numărul de operații sunt invalide.&lt;br /&gt;
&lt;br /&gt;
==Rezolvare==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#3543 StringPushPop&lt;br /&gt;
def verifica_date_intrare(s, q):&lt;br /&gt;
    if len(s) &amp;gt; 100000 or q &amp;lt;= 0:&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    s = input(&amp;quot;Introduceți string-ul s: &amp;quot;).strip()  # citim string-ul s de la tastatură și afișăm un mesaj de prompt&lt;br /&gt;
    q = input(&amp;quot;Introduceți numărul de operații q: &amp;quot;).strip()  # citim numărul de operații q de la tastatură și îl convertim la întreg&lt;br /&gt;
&lt;br /&gt;
    # Verificăm datele de intrare&lt;br /&gt;
    if not verifica_date_intrare(s, int(q)):&lt;br /&gt;
        print(&amp;quot;Date invalide: lungimea string-ului sau numărul de operații sunt invalide.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    for _ in range(int(q)):&lt;br /&gt;
        op = input(&amp;quot;Introduceți operația și caracterul asociat (exemplu: &amp;#039;1 a&amp;#039;): &amp;quot;).strip().split()  # citim operația și caracterul asociat&lt;br /&gt;
        cod = int(op[0])&lt;br /&gt;
        if cod == 1:&lt;br /&gt;
            c = op[1]&lt;br /&gt;
            s = c + s  # adăugăm caracterul la începutul string-ului&lt;br /&gt;
        elif cod == 2:&lt;br /&gt;
            c = op[1]&lt;br /&gt;
            s = s + c  # adăugăm caracterul la finalul string-ului&lt;br /&gt;
        elif cod == 3:&lt;br /&gt;
            s = s[1:]  # ștergem primul caracter al string-ului&lt;br /&gt;
        elif cod == 4:&lt;br /&gt;
            s = s[:-1]  # ștergem ultimul caracter al string-ului&lt;br /&gt;
        elif cod == 5:&lt;br /&gt;
            s = s[::-1]  # inversăm string-ul&lt;br /&gt;
&lt;br /&gt;
    print(s)  # afișăm string-ul rezultat&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cristina94</name></author>
	</entry>
</feed>