Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: License Key Formatting

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "482" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

You are given a license key represented as a string s that consists of only alphanumeric characters and dashes. The string is separated into n + 1 groups by n dashes. You are also given an integer k. We want to reformat the string s such that each group contains exactly k characters, except for the first group, which could be shorter than k but still must contain at least one character. Furthermore, there must be a dash inserted between two groups, and you should convert all lowercase letters to uppercase. Return the reformatted license key. Example 1: Input: s = "5F3Z-2e-9-w", k = 4 Output: "5F3Z-2E9W" Explanation: The string s has been split into two parts, each part has 4 characters. Note that the two extra dashes are not needed and can be removed. Example 2: Input: s = "2-5g-3-J", k = 2 Output: "2-5G-3J" Explanation: The string s has been split into three parts, each part has 2 characters except the first part as it could be shorter as mentioned above. Constraints: 1 <= s.length <= 105 s consists of English letters, digits, and dashes '-'. 1 <= k <= 104

Explanation

Here's the solution to the license key formatting problem:

  • Clean and Convert: Remove dashes and convert the string to uppercase for consistency.
  • Group Characters: Iterate backward through the cleaned string, creating groups of k characters.
  • Build Reformatted String: Prepend each group to the result string, adding a dash between groups (except at the beginning).

  • Runtime Complexity: O(n), where n is the length of the input string.

  • Storage Complexity: O(n), to store the reformatted string.

Code

    def licenseKeyFormatting(s: str, k: int) -> str:
    """
    Reformats a license key string according to the given rules.

    Args:
        s: The license key string.
        k: The desired group size.

    Returns:
        The reformatted license key string.
    """

    cleaned_s = s.replace("-", "").upper()
    n = len(cleaned_s)
    result = ""

    for i in range(n - 1, -1, -1):
        result = cleaned_s[i] + result
        if (n - 1 - i) % k == 0 and i != 0:
            result = "-" + result

    return result

More from this blog

C

Chatmagic blog

2894 posts