# Interview Prep Day — 5

In continuation to below post

Finished with 5th day of learning. I started with Hibernate Interview questions and did JSP interview questions. I do interview questions so that I can be prepared for any kind of rapid-fire telephonic rounds. Because I don’t when Google can call me. Waiting for my interview with google. But I hope before that I am enough confident about my self.

After doing interview questions I solved the leetcode July challenge question,

**Given two numbers, ****hour**** and ****minutes****. Return the smaller angle (in degrees) formed between the ****hour**** and the ****minute**** hand.**

The problem with this question was I don’t even know basic maths, so it was not at all possible for me to solve it without cheating, but I didn’t want to cheat so I took my brother’s help and understood the basic maths behind it.

- The speed of minutes hand is 6 degrees per minute. How I came to this conclusion as 1 round of circle is completed in 1 hr, 1 hr = 60 mins, and circle is 360 degrees, on dividing 360 / 60 we get the result.
- Now we know 1 minute is 6 degrees and how much would be the speed of hour hand, We know very well that it takes 12 hrs for an hour hand to complete a circle, so diving 360/12*60 will get the result of 0.5 degrees or 1/2 degree
- Now we know the speed of the hour and minute hand, for finding out the angle we need to subtract mins * 6 — hour*60 + mins*0.5, if the hour hand is at 12 we will set it zero.
- For hour = 12 and mins = 30 , we can calculate 30*6–0*60 +30*05 = 180–15 = 165 degree
- There is one more point left which is we have to give the smallest angle as a result, so we will find out the min out of 360 — angle or angle. Whichever will be the minimum is the result.

Next question I did was based on strings, which was one of the simplest questions, I make sure that first I try questions using pen and paper and then will solve on the code editor. Even the question was simple I wasn’t able to do it, although I was going in the right track still, I was confused, and finally, have to take help from leetcode solutions

**Given a string, find the first non-repeating character in it and return its index. If it doesn’t exist, return -1.**

One of the simplest solutions was to

- Take HashMap and store the frequency of each character by iterating the string, if value present in hashmap add one to the current frequency, if not then add value in a hashmap with frequency as 1.
- Iterate again the string and check one by one the frequency from hashmap starting from the index 0, if the frequency is equal to 1 then it is the result index

I did another question related to String which was

**Return the index of the first occurrence of needle in a haystack, or -1 if the needle is not part of haystack.**

**Example 1:**

**Input:** haystack = "hello", needle = "ll"

**Output:** 2

**Example 2:**

**Input:** haystack = "aaaaa", needle = "bba"

**Output:** -1

For solving this, used String method indexOf

if(needle.length() > haystack.length() )

return -1;

if(needle == null)

return 0;

int index = haystack.indexOf(needle);

if (index<0) return -1;

else return index;

I tried doing one more question related to a string, and I was again related to maths, and Math sucks. But I soon have to make my self fall in love with maths because math can take me to places. The question was reversing the 32-bit integer, but I haven't done it yet, I am close to the solution and will tell you about this by tomorrow.

Have I told you from tomorrow I will add one more activity to my daily routine which is solving maths problems using programing to improve my maths? Obviously Yes Just Now, I know its a PJ.

After this, I Read MySQL internals book Chapter 4 and you can find highlights over here

Happy Learning!!!