Codejam2022 Round1A: Double or One Thing
6987 단어 Pythonprogrammingalgorithmtech
문제.
Uppercase에 대한 영어 문자열을 제공합니다.텍스트를 강조 표시할 때 얻을 수 있는 새 문자열 중 사전 순서로 가장 먼저 나타나는 문자열을 구합니다.예를 들어 HELLOWORLD에서 H, L, O, L을 강조 표시하면 HHELLOWOLD와 같은 문자의 강조 부분이 두 번 추가됩니다.
계산법
강조 표시된 문자를 다음과 같이 결정합니다.
이루어지다
문자열을 입력하는 사전 처리는itertools의 그룹by를 사용합니다.
def counts(S):
import itertools
return [(label, len(list(group))) for label, group in itertools.groupby(S)]
T = int(input())
for t in range(1, T + 1):
S = input()
s_counts = counts(S)
res = []
for i in range(len(s_counts)):
if i < len(s_counts) - 1 and s_counts[i][0] < s_counts[i+1][0]:
res.extend([s_counts[i][0] for _ in range(s_counts[i][1] * 2)])
else:
res.extend([s_counts[i][0] for _ in range(s_counts[i][1])])
print('Case #{}: {}'.format(t, ''.join(res)))
Reference
이 문제에 관하여(Codejam2022 Round1A: Double or One Thing), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/satojkovic/articles/1d0e972cd020b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)