Saturday, November 16, 2024
Google search engine
HomeLanguagesAll palindrome numbers in a list

All palindrome numbers in a list

Given a list, count and print all the palindrome numbers in it. Examples:

Input: 10 121 133 155 141 252
Output: 121 141 252
Total palindrome nos. are 3

Input: 111 220 784 565 498 787 363
Output: 111 565 787 363
Total palindrome nos. are 4

1. Access an element from the list. 
2. Now, in a temporary variable get its reverse value. 
3. Now, compare the list element value by its reverse value, if both are same print the list element and increase the counter c by 1. 
4. Carry on this procedure till list becomes empty. 
5. Now, print the counter value i.e total number of palindrome numbers in given list. 

Python3




# Python program to count and
# print all palindrome numbers in a list.
 
 
def palindromeNumbers(list_a):
 
    c = 0
 
    # loop till list is not empty
    for i in list_a:
 
        # Find reverse of current number
        t = i
        rev = 0
        while t > 0:
            rev = rev * 10 + t % 10
            t = t // 10
 
        # compare rev with the current number
        if rev == i:
            print(i)
            c = c + 1
 
    print()
    print("Total palindrome nos. are", c)
    print()
 
# Driver code
 
 
def main():
 
    list_a = [10, 121, 133, 155, 141, 252]
    palindromeNumbers(list_a)
 
    list_b = [111, 220, 784, 565, 498, 787, 363]
    palindromeNumbers(list_b)
 
 
if __name__ == "__main__":
    main()             # main function call


Output

121
141
252

Total palindrome nos. are 3

111
565
787
363

Total palindrome nos. are 4

Method : Using str() and slicing 

Python3




# Python program to count and
# print all palindrome numbers in a list.
 
 
def palindromeNumbers(list_a):
    c = 0
    for i in list_a:
        if str(i) == str(i)[::-1]:
            print(i)
            c += 1
    print("Total palindrome nos. are", c)
 
 
list_a = [10, 121, 133, 155, 141, 252]
palindromeNumbers(list_a)


Output

121
141
252
Total palindrome nos. are 3

Method : Using recursion

One approach we can use is recursion to check for palindrome numbers.

Here is an example of how this can be implemented:

Python3




def is_palindrome(num):
    if len(str(num)) == 1:
        return True
    if str(num)[0] == str(num)[-1]:
        return is_palindrome(str(num)[1:-1])
    return False
 
def palindromeNumbers(list_a):
    c = 0
    for i in list_a:
        if is_palindrome(i):
            print(i)
            c += 1
    print("Total palindrome nos. are", c)
 
list_a = [10, 121, 133, 155, 141, 252]
palindromeNumbers(list_a)


Output

121
141
252
Total palindrome nos. are 3

In this implementation, the is_palindrome function uses recursion to check if a given number is a palindrome. It does this by checking the first and last digits of the number, and then calling itself with the number with the first and last digits removed. If the length of the number is 1, it returns True, since a single digit number is always a palindrome. If the first and last digits do not match, it returns False.

The palindromeNumbers function then iterates through the list and checks if each number is a palindrome using the is_palindrome function. If it is, it prints the number and increments the counter. Finally, it prints the total number of palindrome numbers in the list.

The time complexity of the above code is O(n * m), where n is the length of the input list and m is the average length of the numbers in the list. This is because the palindromeNumbers function iterates through the entire list, and for each number it calls the is_palindrome function, which takes O(m) time to check if the number is a palindrome.

The auxiliary space complexity of the above code is O(m), as the is_palindrome function uses a recursive call stack that takes up O(m) space, where m is the length of the number being checked. This is because the maximum depth of the recursive call stack is equal to the length of the number.

RELATED ARTICLES

Most Popular

Recent Comments