Python•license-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;
}
};
TypeScript•license-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">'');
}