713195. Type it!

Easy

Type it!

Summary

This problem is about manipulating strings to create a new string by typing characters in a specific order. The key concepts involved are strings and data structures.

Detailed Explanation

The problem statement can be summarized as follows: You have two strings, str1 and str2, where each character in these strings represents the type of key pressed (e.g., uppercase or lowercase letters, digits, punctuation marks). Your task is to write a function that takes these two strings as input and returns a new string representing the order in which you need to press keys to create str1 from str2. The function should use only the characters available in str2.

Here's a step-by-step breakdown of the solution:

  1. Initialize an empty string, result, that will store the final output.
  2. Iterate over each character in str1.
  3. For each character in str1, check if it is present in str2. If it is not present, return an error message or a special value indicating that it's impossible to create str1 from str2.
  4. Once you've checked all characters in str1, construct the final string by appending each character in the order they were found in str2.

Time complexity: O(n), where n is the length of str1. Space complexity: O(1), as we're only using a constant amount of space to store the result.

Optimized Solutions

Java

View on GeeksforGeeks
public String typeIt(String str1, String str2) {
    StringBuilder result = new StringBuilder();
    for (char c : str1.toCharArray()) {
        int index = str2.indexOf(c);
        if (index == -1) return "Impossible";
        result.append(str2.charAt(index));
        str2 = str2.substring(0, index).concat(str2.substring(index + 1));
    }
    return result.toString();
}

DevExCode

Master coding interviews with Leetcode, system design, TechBit, QuickLearn, DevTips, Tech Battles, and career services.

© 2026 DevExCode. All rights reserved.