1400 - E Palindrom: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerința == Se citește un șir cu n numere naturale. Să se verifice dacă prin rearajarea elementelor șirului se poate obține un șir palindrom. == Date de intrare == Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații. == Date de ieșire == Programul va afișa pe ecran unul dintre mesajele DA sau NU. == Restricții și precizări == : 1 ≤ n ≤ 1000 : cele n numere citite vor fi mai mici decât 10.000 == Exemplu 1 == ; I...
 
No edit summary
Line 24: Line 24:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#1400 E Palindrom
# 1400 E Palindrom
def verificare(nr_elem):
    if 1 <= nr_elem <= 10000:
        return True
    else:
        return False
 
 
def e_palindrom(n):
    frecventa = []
    for i in range(10001):
        frecventa.append(0)
 
    for i in range(n):
        numar = int(input("Introduceti un numar: "))
        frecventa[numar] += 1
 
    nr_impare = 0
    for numar in frecventa:
        if numar % 2 == 1:
            nr_impare += 1
        if nr_impare >= 2:
            print("NU")
            return
 
    print("DA")
    return
 
 
if __name__ == '__main__':
    N = int(input("Introduceti numarul de elemente ale sirului: "))
 
    if verificare(N):
        print("Datele introduse corespund restricțiilor impuse.")
        e_palindrom(N)
    else:
        print("Datele introduse nu corespund restricțiilor impuse.")
 
</syntaxhighlight>

Revision as of 16:17, 22 March 2023

Cerința

Se citește un șir cu n numere naturale. Să se verifice dacă prin rearajarea elementelor șirului se poate obține un șir palindrom.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran unul dintre mesajele DA sau NU.

Restricții și precizări

1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 10.000

Exemplu 1

Intrare
5
5 2 3 3 5
Ieșire
Datele introduse corespund restricțiilor impuse.
DA


Exemplu 2

Intrare
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 1400 E Palindrom

def verificare(nr_elem):

   if 1 <= nr_elem <= 10000:
       return True
   else:
       return False


def e_palindrom(n):

   frecventa = []
   for i in range(10001):
       frecventa.append(0)
   for i in range(n):
       numar = int(input("Introduceti un numar: "))
       frecventa[numar] += 1
   nr_impare = 0
   for numar in frecventa:
       if numar % 2 == 1:
           nr_impare += 1
       if nr_impare >= 2:
           print("NU")
           return
   print("DA")
   return


if __name__ == '__main__':

   N = int(input("Introduceti numarul de elemente ale sirului: "))
   if verificare(N):
       print("Datele introduse corespund restricțiilor impuse.")
       e_palindrom(N)
   else:
       print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>