Untitled

 avatar
unknown
plain_text
5 months ago
773 B
3
Indexable
def is_attractive(code, k):
    n = len(code)
    for i in range(n - k):
        if code[i] != code[i + k]:
            return False
    return True

def generate_attractive_code(org_code, k):
    n = len(org_code)
    
    if is_attractive(org_code, k):
        return org_code
    
    def make_pattern(prefix):
        result = prefix
        while len(result) < n:
            result += result[len(result) - k]
        return result[:n]
    
    prefix = org_code[:k]
    while True:
        candidate = make_pattern(prefix)
        
        if candidate >= org_code:
            return candidate
        
        prefix_num = int(prefix) + 1
        prefix = str(prefix_num).zfill(k)
        
        if len(str(prefix_num)) > k:
            prefix = '1' + '0' * (k-1)
Editor is loading...
Leave a Comment