ログインしてください。
F - Avoid K Palindrome 2 解説
by
kemuniku
Pythonのmore_itertoolsを使う方法
2025年6月26日現在、PythonやPyPyのジャッジにはmore_itertools
という外部ライブラリが導入されています。
このmore_itertools
に含まれる、distinct_permutations
を用いると、C++のように重複を除いた文字列の並び替えの列挙をすることができ、itertools.permutations
を使って文字列を全列挙してからset
などを用いて重複を無くす実装よりも高速に動作します。
実装例
from more_itertools import distinct_permutations
N,K = map(int,input().split())
S = input()
ans = 0
for S in distinct_permutations(S):
for i in range(N-K+1):
for j in range(K):
if S[i+j] != S[i+K-j-1]:
break
else:
break
else:
ans += 1
print(ans)
投稿日時:
最終更新: