15 Jun 2024C++ / Python / TypeScriptEasy

License Key Formatting

Collected C++, Python, TypeScript solutions for license key formatting. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for License Key Formatting. the solution files are available below.

solution files

  • C++ license-key-formatting/synced-solution.cpp
  • Python license-key-formatting/synced-solution.py
  • TypeScript license-key-formatting/synced-solution.ts

Solution files

Pythonlicense-key-formatting/synced-solution.py
def licenseKeyFormatting(S, K):
    cleaned = S.replace(class="syntax-string">'-', class="syntax-string">'').upper()

    if not cleaned:
        return class="syntax-string">""

    result = []
    for i in range(len(cleaned) - class="syntax-number">1, -class="syntax-number">1, -class="syntax-number">1):
        if len(result) > class="syntax-number">0 and len(result) % (K + class="syntax-number">1) == K:
            result.append(class="syntax-string">'-')
        result.append(cleaned[i])

    return class="syntax-string">''.join(reversed(result))
C++license-key-formatting/synced-solution.cpp
class Solution {
public:
    string licenseKeyFormatting(string S, int K) {
        string cleaned = class="syntax-string">"";
        for (char c : S) {
            if (c != class="syntax-string">'-') {
                cleaned += toupper(c);
            }
        }

        if (cleaned.empty()) return class="syntax-string">"";

        string result = class="syntax-string">"";
        int count = class="syntax-number">0;
        for (int i = cleaned.length() - class="syntax-number">1; i >= class="syntax-number">0; i--) {
            if (count == K) {
                result = class="syntax-string">"-" + result;
                count = class="syntax-number">0;
            }
            result = cleaned[i] + result;
            count++;
        }

        return result;
    }
};
TypeScriptlicense-key-formatting/synced-solution.ts
function licenseKeyFormatting(S: string, K: number): string {
    const cleaned = S.replace(/-/g, class="syntax-string">'').toUpperCase();

    if (cleaned.length === class="syntax-number">0) return class="syntax-string">"";

    const result: string[] = [];
    for (let i = cleaned.length - class="syntax-number">1; i >= class="syntax-number">0; i--) {
        if (result.length > class="syntax-number">0 && result.length % (K + class="syntax-number">1) === K) {
            result.push(class="syntax-string">'-');
        }
        result.push(cleaned[i]);
    }

    return result.reverse().join(class="syntax-string">'');
}