Problemi 036

Kërkesa

Një varg shkronjash quhet palindromë nëse duke u lexuar nga fillimi në fund dhe nga fundi në fillim është njësoj. Për shembull emri ANA nëse lexohet mbrapsht do të jetë përsëri e njëjta fjalë. Bëni një program që kontrollon nëse një varg i dhënë është palindromë.

Referenca: https://www.codechef.com/problems/PALL01

Shembull

$ cat input.txt
5
6666
123321
kapak
ana
palindrom

$ python3 prog.py < input.txt
Yes
Yes
Yes
Yes
No

Zgjidhja 1

T = int(input())
for t in range(T):
    S = input()
    n = len(S)
    for i in range(n):
        if S[i] != S[n-i-1]:
            print('no')
            break
    else:
        print('yes')

Sqarime

Për çdo shkronjë kontrollojmë nëse është e njëjtë me shkronjën korresponduese nga fundi.

Zgjidhja 2

T = int(input())
for t in range(T):
    S = input()
    n = len(S)
    i = 0
    while i < n:
        if S[i] != S[n-i-1]:
            print('no')
            break
        i += 1
    else:
        print('yes')

Sqarime

Zgjidhje e njëjtë me të parën, vetëm se në vend të for-it përdorim ciklin while.

Zgjidhja 3

T = int(input())
for t in range(T):
    S = input()
    n = len(S)
    i = 0
    j = n-1
    while  i < j:
        if S[i] != S[j]:
            print('no')
            break
        i += 1
        j -= 1
    else:
        print('yes')

Sqarime

Në këtë zgjidhje përdorim 2 indekse, një që niset nga fillimi dhe një që niset nga fundi. Cikli ndërpritet kur të dy indekset takohen në mes të vargut.

Zgjidhja 4

for _ in range(int(input())):
    S = input()
    l1 = list(S)
    l2 = list(S)
    l2.reverse()
    print('Yes') if l1 == l2 else print('No')

Sqarime

Në këtë zgjidhje përdorim funksionin reverse() të listës që e kthen një listë në renditjen e kundërt.

Detyra

Në kohët e lashta, komandanti i një ushtrie ishte supersticioz. Ai e quante një ushtar “me fat” nëse numri i armëve që kishte ushtari ishte çift dhe “pa fat” në të kundërt. Ushtrinë e quante “gati për betejë” nëse numri i ushtarëve me fat ishte më i madh se ai i ushtarëve pa fat. Në të kundërt e quante “jo gati”.

Nëse ju jepet numri i armëve që ka çdo ushtar, bëni një program që gjen nëse ushtria është gati për betejë ose jo.

Referenca: https://www.codechef.com/problems/AMR15A

Shembull

$ cat input.txt
5
1
1
1
2
4
11 12 13 14
3
2 3 4
5
1 2 3 4 5

$ python3 prog.py < input.txt
NOT READY
READY FOR BATTLE
NOT READY
READY FOR BATTLE
NOT READY