A, C, G, T からなる長さNの文字列 Sが与えられます。以下の Q個の問いに答えてください。問 i (1≤i≤Q): 整数 li,ri (1≤li
Sの先頭から li 文字目から ri 文字目までの (両端含む) 部分文字列を考える。この文字列に AC は部分文字列として何回現れるか。
count
でACの数を計算して出力する。N,Q=map(int,input().split())
S=input()
for q in range(Q):
l,r=map(int,input().split())
s=S[l-1:r]
print(s.count("AC"))
🐍これでいけんちゃうかな?
TLE
🐍計算量の問題か
N,Q=map(int,input().split())
S=input()
t = [0] * (N + 1)
for i in range(N):
t[i + 1] = t[i] + (1 if S[i : i + 2] == 'AC' else 0)
for q in range(Q):
l,r=map(int,input().split())
print(t[r-1] - t[l-1])
🐍ACのカウントの配列をつくるんやな。
AC
🐍文字列検索って結構時間喰うねんな。。
第9回 | AtCoder Beginner Contest 090BをPythonで解く |
第10回 | AtCoder Beginner Contest 129DをPythonで解く |
第11回 | AtCoder Beginner Contest 122cをPythonで解く |
第12回 | AtCoder Beginner Contest 063bをPythonで解く |
第13回 | # AtCoder Beginner Contest 123CをPythonで解く |
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント