<?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=0850_-_Repetitii</id>
	<title>0850 - Repetitii - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0850_-_Repetitii"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0850_-_Repetitii&amp;action=history"/>
	<updated>2026-05-01T21:46:46Z</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=0850_-_Repetitii&amp;diff=8873&amp;oldid=prev</id>
		<title>Codrut Borcutean: Pagină nouă: == Cerinţa == Se consideră un șir de caractere format numai din litere mici ale alfabetului englez. Dacă șirul conține subșiruri consecutive care se repetă, el poate fi scris condensat. De exemplu, șirul &#039;&#039;&#039;mamateteter&#039;&#039;&#039; poate fi scris &#039;&#039;&#039;(ma)2(te)3r&#039;&#039;&#039; – subșirul care se repetă se scrie între paranteze rotunde, urmat de numărul de apariții.  Dându-se un șir în forma condensată, să se determine șirul în forma inițială. == Date de intrare == Programul...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0850_-_Repetitii&amp;diff=8873&amp;oldid=prev"/>
		<updated>2024-01-03T15:41:14Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se consideră un șir de caractere format numai din litere mici ale alfabetului englez. Dacă șirul conține subșiruri consecutive care se repetă, el poate fi scris condensat. De exemplu, șirul &amp;#039;&amp;#039;&amp;#039;mamateteter&amp;#039;&amp;#039;&amp;#039; poate fi scris &amp;#039;&amp;#039;&amp;#039;(ma)2(te)3r&amp;#039;&amp;#039;&amp;#039; – subșirul care se repetă se scrie între paranteze rotunde, urmat de numărul de apariții.  Dându-se un șir în forma condensată, să se determine șirul în forma inițială. == Date de intrare == Programul...&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 consideră un șir de caractere format numai din litere mici ale alfabetului englez. Dacă șirul conține subșiruri consecutive care se repetă, el poate fi scris condensat. De exemplu, șirul &amp;#039;&amp;#039;&amp;#039;mamateteter&amp;#039;&amp;#039;&amp;#039; poate fi scris &amp;#039;&amp;#039;&amp;#039;(ma)2(te)3r&amp;#039;&amp;#039;&amp;#039; – subșirul care se repetă se scrie între paranteze rotunde, urmat de numărul de apariții.&lt;br /&gt;
&lt;br /&gt;
Dându-se un șir în forma condensată, să se determine șirul în forma inițială.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură șirul &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;, în forma condensată.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran șirul &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;, în forma inițială.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* lungimea șirurilor &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039; nu depășește &amp;#039;&amp;#039;&amp;#039;255&amp;#039;&amp;#039;&amp;#039; caractere&lt;br /&gt;
* șirul condensat nu va conține paranteze în alte paranteze&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 (ma)2(te)3r&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 mamateteter&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def expand_string(s):&lt;br /&gt;
    # Funcția expandează un șir de caractere condensat în forma sa inițială.&lt;br /&gt;
&lt;br /&gt;
    # Folosim o expresie regulată pentru a găsi toate subșirurile de forma (x)n&lt;br /&gt;
    matches = re.findall(r&amp;#039;\((.*?)\)(\d+)&amp;#039;, s)&lt;br /&gt;
    for match in matches:&lt;br /&gt;
        # Înlocuim fiecare subșir (x)n cu x repetat de n ori&lt;br /&gt;
        s = s.replace(f&amp;#039;({match[0]}){match[1]}&amp;#039;, match[0] * int(match[1]))&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim șirul de la tastatură&lt;br /&gt;
    s = input().strip()&lt;br /&gt;
&lt;br /&gt;
    # Verificăm dacă șirul respectă restricțiile&lt;br /&gt;
    if len(s) &amp;gt; 255:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Expandăm șirul și îl afișăm&lt;br /&gt;
    print(expand_string(s))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Codrut Borcutean</name></author>
	</entry>
</feed>