GeeksforGeeks App
Open App
Browser
Continue

Python program to check whether number formed by combining all elements of the array is palindrome

Given an array arr[], the task is to combine all the elements in the array sequentially and check if it is a palindrome.

Examples:

Input: arr[] ={1 , 69 , 54 , 45 , 96 , 1}

Output: palindrome

Explanation: The number formed by combining all the elements is “1695445961” which is a palindrome

Input: arr[] ={2 , 73 , 95 , 59 , 96 , 2}

Output: not palindrome

Explanation: The number formed by combining all the elements is “2739559962” which is not a palindrome

Method 1: Using map() and join()

• Convert each element of the list to a string using map() function.
• Join the list using join() function.
• Check if it is a palindrome.
• If yes then print palindrome.
• If no print, not a palindrome.

Below is the implementation of the above approach:

Python3

 `# function to check palindrome``def` `checkPalindrome(string):` `    ``# reverse the string``    ``rev ``=` `string[::``-``1``]` `    ``# checking if string is equal to reverse``    ``if``(string ``=``=` `rev):``        ``return` `True``    ``else``:``        ``return` `False` `# function to convert list to single number string`  `def` `joinArray(lis):` `    ``# convert the elements of list to string``    ``lis ``=` `list``(``map``(``str``, lis))` `    ``# converting list to string``    ``number ``=` `''.join(lis)` `    ``# checking if it is palindrome``    ``if``(checkPalindrome(number)):``        ``return` `True``    ``else``:``        ``return` `False`  `# Driver code``lis ``=` `[``1``, ``76``, ``39``, ``93``, ``67``, ``1``]``if``(joinArray(lis)):``    ``print``(``"Palindrome"``)``else``:``    ``print``(``"not Palindrome"``)`

Output

`Palindrome`

Time Complexity: O(n)

Method 2: Using type casting and string concatenation

• Take an empty string say str.
• Traverse through the list and convert each element to string using type casting
• Add this to str using string concatenation
• Check if str is a palindrome

Below is the implementation of the above approach:

Python3

 `# function to check palindrome``def` `checkPalindrome(string):` `    ``# reverse the string``    ``rev ``=` `string[::``-``1``]` `    ``# checking if string is equal to reverse``    ``if``(string ``=``=` `rev):``        ``return` `True``    ``else``:``        ``return` `False` `# function to convert list to single number string`  `def` `joinArray(lis):` `    ``# defining empty string as number``    ``number ``=` `""` `    ``# convert the elements of list to string using type conversion``    ``for` `i ``in` `lis:` `        ``# converting to string``        ``i ``=` `str``(i)` `        ``# concat this to string``        ``number ``=` `number ``+` `i` `    ``# checking if it is palindrome``    ``if``(checkPalindrome(number)):``        ``return` `True``    ``else``:``        ``return` `False`  `# Driver code``lis ``=` `[``1``, ``76``, ``39``, ``93``, ``67``, ``1``]` `if``(joinArray(lis)):``    ``print``(``"Palindrome"``)``else``:``    ``print``(``"not Palindrome"``)`

Output

`Palindrome`

Method 3 : Using str(),list(),extend(),join() and reverse() methods

Python3

 `lis ``=` `[``1``, ``76``, ``39``, ``93``, ``67``, ``1``]``s ``=` `""``for` `i ``in` `lis:``    ``s ``+``=` `str``(i)``x ``=` `list``(s)``y ``=` `[]``y.extend(x)``x.reverse()``if``(x ``=``=` `y):``    ``print``(``"Palindrome"``)``else``:``    ``print``(``"not Palindrome"``)`

Output

`Palindrome`

Method 4 : Using reduce():

Algorithm:

1. Import the “reduce” function from the “functools” module.
2. Create a list of integers “lst”.
3. Use the “reduce” function to concatenate all the integers in the list into a single string “s”.
4. Check whether the string “s” is equal to its reverse.
5. If “s” is equal to its reverse, print “Palindrome”; otherwise, print “Not Palindrome”.

Python3

 `from` `functools ``import` `reduce``lst ``=` `[``1``, ``76``, ``39``, ``93``, ``67``, ``1``]``# concatenate all numbers into a single string``s ``=` `reduce``(``lambda` `x, y: ``str``(x) ``+` `str``(y), lst)``# compare string with its reverse``if` `s ``=``=` `s[::``-``1``]:``    ``print``(``"Palindrome"``)``else``:``    ``print``(``"Not Palindrome"``)``    ` `    ``#This code is contributed by Jyothi Pinjala.`

Output

`Palindrome`

Time complexity: O(n), where n is the number of integers in the list “lst”. This is because the reduce function takes O(n) time to concatenate all the integers into a single string, and checking whether the string is equal to its reverse takes O(n/2) time.
Auxiliary Space: O(n), where n is the number of integers in the list “lst”. This is because the reduce function creates a new string of length n by concatenating all the integers in the list.

My Personal Notes arrow_drop_up