Palindromic List

One beautiful property of XOR (symbol : \(\oplus\)) is that for any integer \(x\), we have \(x \oplus x = 0\). Using this property, Chris came up with an algorithm that check if a list \(L\) is palindromic.

1
2
3
4
5
6
7
8
9
def is_pal(L):
    val = 0
    for i in range(len(L)):
        val += L[i] ^ L[-i-1]

    if val == 0:
        return True
    else:
        return False

Certainly, this function is restricted to lists that contain only numbers. What is the domain of the numbers in the list such that this function is applicable without error?

Details and Assumptions

  • a ^ b returns \(a\oplus b\).
  • A list L is palindromic if L remains the same after applying L.reverse().
  • In Python's list, the last element is L[-1], second last element is L[-2] and so on.
×

Problem Loading...

Note Loading...

Set Loading...