Netflix L4 Phone Screen

netflix logo
netflix
SDE II
June 8, 20258 reads

Summary

I had a phone screen with Netflix for an L4 role, which involved solving two coding problems related to JSON object manipulation and path extraction.

Full Experience

first an easy followed by medium not complicated as it sounds

Question :

  1. Given a Json Object in the form of Map<String, Object>, and given a query to match a key by path (similar to jq), extract its value.
  2. How can you extend the functionality to support any key (“*”) match?

Note: No json parsing required.

Examples:

dict =  '{"fname": "masked_first_name", "lname": "masked_last_name", "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}' 
key = ".contacts.cell"
res =  “+1(999).999.9999”

dict =  '{"fname": "masked_first_name", "lname": "masked_last_name", "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}'  
key = ".fname"
res =  “masked_first_name”

dict = '{"fname": "masked_first_name", "lname": "masked_last_name", "contacts”:{"home”:”12345"}}’
key = ".contacts.cell"
res =  null


dict '{"fname": "jomasked_first_namehn", "lname": "masked_last_name", "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}'
key =  ".*.cell"
res = ["+1(999).999.9999"]

dict = '{"fname": "jomasked_first_namehn", "lname": {"cell": "+1(888).999.9999", "home": "+1(555).333.3333" }, "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}'
key =  ".*.cell" 
res = ["+1(888).999.9999", "+1(999).999.9999"]

key = contact.*
res = {'cell': '+1(999).999.9999', 'home': '+1(333).333.3333', 'cells': {'cell1': '121211'}}


Interview Questions (2)

Q1
Extract Value from JSON Object by Path
Data Structures & AlgorithmsEasy

Given a Json Object in the form of Map<String, Object>, and given a query to match a key by path (similar to jq), extract its value. Note: No json parsing required.

Examples:

dict =  '{"fname": "masked_first_name", "lname": "masked_last_name", "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}' 
key = ".contacts.cell"
res =  “+1(999).999.9999”

dict =  '{"fname": "masked_first_name", "lname": "masked_last_name", "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}'  
key = ".fname"
res =  “masked_first_name”

dict = '{"fname": "masked_first_name", "lname": "masked_last_name", "contacts”:{"home”:”12345"}}’
key = ".contacts.cell"
res =  null
Q2
Extend JSON Path Extraction with Wildcard Match
Data Structures & AlgorithmsMedium

How can you extend the functionality to support any key (“*”) match?

Examples:

dict '{"fname": "jomasked_first_namehn", "lname": "masked_last_name", "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}'
key =  ".*.cell"
res = ["+1(999).999.9999"]

dict = '{"fname": "jomasked_first_namehn", "lname": {"cell": "+1(888).999.9999", "home": "+1(555).333.3333" }, "contacts": {"cell": "+1(999).999.9999", "home": "+1(333).333.3333" }}'
key =  ".*.cell" 
res = ["+1(888).999.9999", "+1(999).999.9999"]

key = contact.*
res = {'cell': '+1(999).999.9999', 'home': '+1(333).333.3333', 'cells': {'cell1': '121211'}}
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!