前提・実現したいこと
下記のようなAtcoderの問題で、テストケースのうち一例だけREとなってしまい、そのテストケースも確認できないため、原因がわかりませんでした。かなりわかりづらいと思うのですが、このコードでREを引き起こしうる部分がわかれば、教えていただけると幸いです。よろしくお願いいたします。
問題文
X と . からなる文字列 S が与えられます。
S に対して、次の操作を 0 回以上 K 回以下行うことができます。
. を X に置き換える
操作後に、X を最大で何個連続させることができますか?
制約
1≤∣S∣≤2*10**5
S の各文字は X または . である
0≤K≤2*10**5
K は整数である
入力例
XX...X.X.X.
2
出力例
5
発生している問題・エラーメッセージ
REとなるものが一つだけあった
該当のソースコード
S = str(input()) K = int(input()) N = len(S) A = [] total = 0 # .の数がK以下であればばすべてXにできるので分岐 if S.count(".") <= K: print(N) else: for i in range(N): if S[i] == ".": A.append(i) #Mは.の個数 M = len(A) if M - K - 1 >= 1: for j in range(M-K-1): total = max(total, A[j + K + 1] - A[j] -1) if total < A[K]: total = A[K] if total < N - A[-1 * (K+1)] - 1: total = N - A[-1 * (k+1)] - 1 else: total = max(A[-1], N - A[0] - 1) print(total)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。