Happy Number

In this tutorial, I am going to discuss a very interesting problem to determine if a number is happy or not.

Given a number n, we have to write a code to check whether a number is happy or not.

Happy Number

Take any positive integer, and replace the number with the sum of the squares of its digits. Repeat the process until the number equals 1 (where it will stay). If it’s equal to 1 then it’s a happy number. If it loops endlessly in a cycle which does not include 1 then it’s not a happy number.

Those numbers for which this process ends in 1 are happy numbers.

For Example –

Example 1:

Input : 19, Output: true

Step 1: 1^2 + 9^2 = 82

Step 2: 8^2 + 2^2 = 68

Step 3: 6^2 + 8^2 = 100

Step 4: 1^2 + 0^2 + 0^2 = 1 (The number ends at 1, So it’s a happy number).

Example 2:

Input  :  20, Output :  false

Step 1: 2^2 + 0^2 = 4

Step 2: 4^2  = 16

Step 3: 1^2 + 6^2 = 37

Step 4: 3^2 + 7^2 = 58

Step 5: 5^2 + 8^2 = 89

Step 6: 8^2 + 9^2 = 145

Step 7: 1^2 + 4^2 + 5^2 = 42

Step 8: 4^2 + 2^2 = 20 (Loop occurs)

Find All Duplicates in an Array

How to find all duplicates in an array without using extra space?

Given an array of integers, the integers are in the range of 1 ≤ a[i] ≤ n (n = size of array). In this Array, some elements appear twice and others appear once.

Find all the elements that appear twice in this array.

We have to solve this problem without using extra space and in O(n) time complexity.

For Example:

Input: [4, 3, 2, 7, 8, 2, 3, 1]

Output: [2, 3]

Valid Palindrome

Valid palindrome.

Given an input string. We have to write a code to check if it is a palindrome, considering only alphanumeric characters and ignoring cases.

Note: For this problem, consider the empty string as a valid palindrome.

For Example –

Example 1:

Input: “A man, a plan, a canal: Panama”
Output: true

Explanation: After removing non-alphanumeric characters, the string is amanaplanacanalpanama. So, it’s a palindrome

Example 2:

Input: “race a car”
Output: false