Задача Задача №3770580
А
А
Қысқа жауап: тізімнің басы мен соңындағы элементтерді кезек-кезек салыстыру керек. Барлығы тең болса — True, бір жерде тең болмаса — False.
Python-да түсінікті нұсқа:
def is_palindrome(n):
left = 0
right = len(n) - 1
while left < right:
if n[left] != n[right]:
return False
left += 1
right -= 1
return True
print(is_palindrome([1, 2, 3, 2, 1])) # True
print(is_palindrome([1, 2, 3, 4])) # False
Қалай жұмыс істейді:
left— тізімнің бірінші элементі,right— соңғы элементі.- Оларды салыстырамыз.
- Тең болса, көрсеткіштерді ортаға қарай жылжытамыз.
- Бір жұп тең болмаса — бірден
Falseқайтарамыз. - Цикл аяқталса, барлық элементтер симметриялы —
True.
Тексеру:
[1, 2, 3, 2, 1]: 1 = 1, 2 = 2, ортадағы 3 жалғыз қалады →True[1, 2, 3, 4]: 1 ≠ 4 →False
Python-да қысқаша да жазуға болады:
def is_palindrome(n):
return n == n[::-1]
Мұнда n[::-1] — тізімнің кері реті. Бірақ бірінші нұсқа принципті түсінуге ыңғайлырақ.
