Saturday, April 9, 2022

📑 Double or One

Codejam 1A Round 2022. Task 1

Python Only

T=int(input())
for t in range(T):
    S=input()
    NS=''; i=0; temp=''
    while i < len(S)-1:
        if (len(set(S[i:])) == 1) and (len(S[i:]) > 1):
            NS+=S[i:-1]
            break
        else:
            if S[i+1] > S[i]:
                NS+=2*temp+2*S[i]
                temp=''
            elif S[i+1] < S[i]:
                NS+=temp+S[i]
                temp=''
            else:
                temp+=S[i]
        i+=1  
    print('Case #{}: {}'.format(t+1,NS+S[-1]))


def gen_first(S):
    i=0; temp=''
    while i < len(S)-1:
        if (len(set(S[i:])) == 1) and (len(S[i:]) > 1):
            yield S[i:-1]
            break
        else:
            if S[i+1] > S[i]:
                yield 2*temp+2*S[i]
                temp=''
            elif S[i+1] < S[i]:
                yield temp+S[i]
                temp=''
            else:
                temp+=S[i]
        i+=1
    yield S[-1]
T=int(input())
for t in range(T):
    S=input()
    NS=''.join(gen_first(S))
    print('Case #{}: {}'.format(t+1,NS))


No comments:

Post a Comment