mediumStringsPattern: Mixed

Minimum Adjacent Swaps Solution

Problem Statement

Given two strings, `original` and `corrupted`, where `corrupted` is a subsequence of `original`, determine the minimum number of adjacent character swaps required to transform `corrupted` into a subsequence of `original` in-place.

Examples

Example 1:
Input:{"original":"abcde","corrupted":"bd"}
Output:2
Explanation: To correct 'bd' in 'abcde', we need at least two swaps: 'b' and 'c', then 'd' and 'c' or 'b'.
Example 2:
Input:{"original":"abcd","corrupted":"dc"}
Output:2
Explanation: To correct 'dc' in 'abcd', we need at least two swaps: 'd' and 'c', then no further correction is needed.

Constraints

  • 1 <= length of transmission string <= 1000
  • 1 <= length of subsequence <= 100
Time: O(n) Space: O(1)
The optimized approach involves using a two-pointer technique to compare the subsequence with the transmission string and identify the characters that need to be swapped. This approach has a time complexity of O(n), where n is the length of the transmission string. It also uses a greedy strategy to minimize the number of swaps required.

Run, Test & Submit Code

Ready to practice this challenge? Launch our interactive compilation environment with compiler validation.

Solve on Interactive Workspace

Tested Solutions

No solution code is currently loaded.
Complete this code in the workspace editor.