Google L3 SWE Interviews

google logo
google
· SWE
September 16, 2026 · 1 reads

Summary

I interviewed for a Google L3 Software Engineer role, completing three technical rounds and a Googlyness & Leadership round, and received a Lean Hire/Hire decision.

Full Experience

Recently had interviews at Google for their SWE role. Went through 3 technical rounds and 1 G&L round.

Round 1: Technical

Question was something like this:

Given a list of people and their schedules, return a final schedule that shows the start and end times, with the respective people on schedule.

Example: Input

roster = [
    ["Mary", 10, 40],
    ["John", 30, 50],
    ["Peter", 50, 80],
    ["Crystal", 100, 150],
    ["Jane", 120, 180]
]

Output

res = [
    [10, 30, ["Mary"]],
    [30, 40, ["Mary", "John"]],
    [40, 50, ["John"]],
    [50, 80, ["Peter"]],
    [80, 100, []],
    [100, 120, ["Crystal"]],
    [120, 150, ["Crystal", "Jane"]],
    [150, 180, ["Jane"]]
]

Self-Verdict: Lean Hire Reason: Proposed a solution that the interviewer did not exactly like, interviewer tried to steer me towards the right direction, but in the end asked me to implement my approach. Implemented my approach with trouble, but managed to finish up the code in the end and he seemed fine with it. Stumbled during the time complexity questions he gave, which were rather easy and I was just really panicky.

Round 2: Googlyness & Leadership (G&L)

Interviewer went through my resume and asked some questions about it, mainly to understand the experiences I had and what I did, plus some follow-up questions that are similar to those that can be found here: https://leetcode.com/discuss/post/5963463/googlyness-frequently-asked-questions-by-55sh/

Self-Verdict: Lean Hire / Hire Reason: Could have answered better, though I felt that I answered them well enough

Round 3: Technical

Question was something like this:

Implement an AdService with 2 APIs: InsertAd, which takes in a content str and a score int and GetAd, which returns an ad. The ad to be returned should follow the 3 conditions: 1. The ad with the highest score should be returned 2. No ad should be used consecutively 3. When an ad is retrieved, it's score should reduce by 1

Self-Verdict: Lean Hire / Hire Reason: Was able to give the optimal approach (using a max heap) at the start, mostly had no problems explaining and coding the solution out, though there were some mistakes made while coding. Interviewer asked some follow-up questions which I was able to mostly answer (except for question about the mechanism for a min-heap), and I was able to give the time complexity of the Data Structure. However, although I felt it was quite an easy question, it took around 40 minutes to finish the coding (though this includes answering follow-up questions + dry run etc), hence giving it a Lean Hire.

Round 4: Technical

The question is to find the number of substrings in a given string that are magical string pairs. It is the same question that can be found here: https://leetcode.com/discuss/post/6138456/google-l3-onsite-interview-question-by-a-d450/

Two strings s1 and s2 are considered to be magical string pairs if the set of distinct characters in s1 is equal to s2, where s1 and s2 are non-empty strings. Given a string s, find the number of triplets (i, j, k), where i <= j < k, such that sub-strings s1 (s[i: j+1]) and s2 (s[j+1: k+1]) are magical string pairs. s consists of strictly lowercase alphabet characters.

Self-Verdict: No Hire / Lean No Hire Reason: Able to give the brute force solution, and a solution using the fixed number of lowercase alphabets in the string, but they are not optimised enough to be O(n^2)

Interview Questions (3)

1.

Merge People Schedules

Data Structures & Algorithms

Given a list of people and their schedules (each entry contains a name and start/end times), return a consolidated schedule that lists intervals with the corresponding people present during each interval.

Example Input:

roster = [
    ["Mary", 10, 40],
    ["John", 30, 50],
    ["Peter", 50, 80],
    ["Crystal", 100, 150],
    ["Jane", 120, 180]
]

Expected Output:

[
    [10, 30, ["Mary"]],
    [30, 40, ["Mary", "John"]],
    [40, 50, ["John"]],
    [50, 80, ["Peter"]],
    [80, 100, []],
    [100, 120, ["Crystal"]],
    [120, 150, ["Crystal", "Jane"]],
    [150, 180, ["Jane"]]
]
2.

AdService with Priority and Cooldown

Data Structures & Algorithms

Design an AdService that supports two operations:

  1. InsertAd(content: string, score: int) – adds an ad with the given content and score.
  2. GetAd() – returns an ad based on the following rules:
    • The ad with the highest current score is returned.
    • The same ad cannot be returned consecutively.
    • After an ad is returned, its score is decremented by 1.

Implement the service efficiently.

3.

Count Magical String Pair Substrings

Data Structures & Algorithms

Two strings s1 and s2 are magical string pairs if the set of distinct characters in s1 equals the set of distinct characters in s2, and both strings are non‑empty.

Given a lowercase string s, count the number of triplets (i, j, k) with i ≤ j < k such that the substrings s1 = s[i..j] and s2 = s[j+1..k] form a magical string pair.

The problem statement can be found here: https://leetcode.com/discuss/post/6138456/google-l3-onsite-interview-question-by-a-d450/

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!