Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

String Difference Function

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

Your question is String Difference Function. 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

Accretive Technology Group's code-review surface needs a deterministic way to display how one text revision differs from another. Given two strings, produce an ordered character-level edit script that transforms the first string into the second.

Return a list of operations represented as two-element lists: [operation, text]. The operation must be one of "equal", "delete", or "insert". Consecutive characters with the same operation should be combined into one item. The result must preserve the order of both strings and use a minimum number of character insertions and deletions. Replacing a character is represented as a deletion followed by an insertion.

Formal Specification

Implement string_diff(old, new), where both inputs are strings. Return a list of [operation, text] lists. Applying equal and delete text to old, while ignoring insert text, must reproduce the original string. Applying equal and insert text, while ignoring delete text, must reproduce new.

Constraints

  • 0 <= len(old), len(new) <= 1,000
  • Inputs contain arbitrary Unicode characters
  • The returned script must use a minimum number of insertions and deletions
  • Any valid script is accepted when multiple minimum scripts exist

Function Signature

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