From 1da3271c85161e82e1762c2178be32baa3af5af9 Mon Sep 17 00:00:00 2001 From: Leanne Rivera Date: Mon, 29 Oct 2018 17:04:49 -0700 Subject: [PATCH] all tests passed, int palindrome = done. --- README.md | 2 +- lib/integer_palindrome_check.rb | 39 ++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ff11a32..5530bb9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Integer Palindrome Check -Check if the digits in a non-negtive integer form a palindrome. +Check if the digits in a non-negative integer form a palindrome. ## Exercise * Design and implement a method that checks if the digits in the input positive integer forms a palindrome. The method returns true if the digits in the input form a palindrome. The method returns false otherwise. diff --git a/lib/integer_palindrome_check.rb b/lib/integer_palindrome_check.rb index dd4deea..bd99404 100644 --- a/lib/integer_palindrome_check.rb +++ b/lib/integer_palindrome_check.rb @@ -1,4 +1,41 @@ # Returns true if the input positive integer number forms a palindrome. Returns false otherwise. def is_palindrome(number) - raise NotImplementedError + # raise NotImplementedError + return false if number == nil || number < 0 + return true if number < 10 || number == 0 + + i = number + num = [] + num_reverse = [] + + while i > 0 #while it is a pos num + digit = i % 10 #digit is the number modulo 10 + i /= 10 #divide i by 10 to remove or 'pop' last digit + num_reverse << digit #push digit to reverse array + num << digit #shovel digit to num array (to be reversed below) + end + + num = array_reverse(num) + + return num == num_reverse ? true : false + end + +#helper method for reversing array +def array_reverse(array) + i = array.length - 1 + j = 0 + + while j < i do + temp = array[i] + array[i] = array[j] + array[j] = temp + i -= 1 + j += 1 + end + return array +end + +is_palindrome(1001) + +# [[log-base10(100) = 2] = [10 * 10 = 100]]