# ☕ Hard Google Interview Question

### A Senior Google Interview Question involving distributed systems and sorting. Pluralsight makes their tutorials free for April! Also, a solution to yesterday's leetcode hard interview question.

Hey Guys,

Interviewing.io is a *fantastic* resource I wanted to share with you all.

You can **book realistic mock interviews with senior FAANG engineers** who will give you **detailed and actionable feedback** on exactly what you need to work on.

Mastering algorithms on LeetCode and system design on SystemsExpert is great, but they don’t prepare you for the pressure and stress that comes from an actual interview setting.

The best part?

**You don’t pay anything until you’re hired.**

Check them out here.

*Special thanks to Interviewing.io for sponsoring Quastor Daily. I’m a user of the service!*

# Tech Snippets

**Distributed Sorting - Hard Google Interview Question**

You’re given 1 terabytes of data and have to sort it using 1,000 computers. Each computer has 1.5 gigabytes of RAM. Sort the data as quickly as possible.

How do you do it?

Here’s an awesome article that goes into detail on how to solve this question.

Some things to consider are

Is there any order or pattern in the initial data?

What is the read speed of the database?

What sorting algorithm do we use?

How do we implement K-way merge?

QuanticDev also goes through some follow up questions that the interviewer may ask in his outstanding article.

**Pluralsight Makes their Videos Free for April**

Pluralsight has some solid tutorials on things like Machine Learning, Distributed Systems, Cloud platforms, etc.

They’re running a special where you can use the product for free for the month of April (no credit card required).

My only criticism of the product is that the videos can get a bit repetitive and slow. It’s usually a lot faster to read books/blog posts on the subject you’re trying to learn.

But hey, it’s free!

# Interview Question

Given a positive integer *n*, write a function that computes the number of **trailing** zeros in *n*!

`Example`

`Input - 12`

`Output - 2 `

`Explanation - 12! is 479001600`

`Input - 900`

`Output - 224 `

`Explanation - 900! is a big ass number`

**Here’s the question in LeetCode.**

*We’ll send a detailed solution tomorrow, so make sure you move our emails to primary, so you don’t miss them!*

**Gmail users**—move us to your primary inbox

**On your phone?**Hit the 3 dots at the top right corner, click "Move to" then "Primary"**On desktop?**Back out of this email then drag and drop this email into the "Primary" tab near the top left of your screen

**Apple mail users**—tap on our email address at the top of this email (next to "From:" on mobile) and click “Add to VIPs”

# Previous Solution

**As a refresher, here’s the last question**

Given *any* integer, print the English phrase version of that inger.

`Example`

`Input - 420`

`Output - Four hundred and twenty`

`Input - 19,323,984`

`Output - Nineteen million, three hundred and twenty three thousand, nine hundred and eighty four.`

**Here’s the question in LeetCode**

**Solution**

Warning - this question is a bit tedious.

There isn’t any option other than manually writing out the ones, tens and thousands in cardinal form, so that’s no fun.

The general overview of how to solve this question is to first break up our number into 3 digit chunks (break it up by the commas).

Then, convert each of those three digit chunks into cardinal form. We do that in a separate function.

After that, tack on the “Billion”, “Million” or “Thousand” based off which place that chunk came from.

In order to convert three digit chunks into cardinal form, we first isolate the ones, tens and hundreds place by using the modulo operation.

Then, we have a couple of dictionaries that maps 1 to “One”, 2 to “Two”, 11 to “Eleven”, 20 to “Twenty” and so on.

We use those dictionaries to convert our ones, tens and hundreds places into the appropriate cardinal numbers and then add on a “Hundred” for the hundreds place.

After we can join the words into our string and return it as the cardinal form of our three digit integer.

The only edge case we have to take care of is if the user enters 0, in which case we just return “Zero”

Here’s the Python 3 code. Not too bad!

**Want more practice with real FAANG software engineers?**

Check out Interviewing.io!

You don’t have to pay anything until you get that job at FAANG!

## Create your profile

## Only paid subscribers can comment on this post

Log in## Check your email

For your security, we need to re-authenticate you.

Click the link we sent to , or click here to log in.