Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Parse Strings to Extract Payloads

MediumPython00:00
Practice interviewer
In session
5 left
00:00

Your question is Parse Strings to Extract Payloads. Start with the requirements on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

Bayer systems may exchange multiple data frames in one string across surfaces such as crop-science, pharmaceuticals, and consumer-health. Parse the stream and return every payload belonging to a requested surface.

Each frame has this format:

BAYER/<surface>/<length>/<payload>

Frames are concatenated directly with no separator. The decimal length specifies the exact number of characters in payload, so the payload may contain /, spaces, or other frame-like text. A surface contains lowercase letters and hyphens. The prefix and separators are case-sensitive.

Implement extract_payloads(stream, surface) to return payloads in their original order. The input stream is guaranteed to contain only complete, well-formed frames, and surface is valid. Return an empty list when no frame matches.

Constraints

  • 1 <= len(stream) <= 10^6
  • 1 <= len(surface) <= 30
  • Each payload length is a nonnegative decimal integer no greater than 10^5
  • The total payload length is at most 10^6
  • Every frame is complete and well-formed

Function Signature

def extract_payloads(stream, surface):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output