文字列操作:部分文字列を取り出す
文字列を for 文で調べる系の問題 問題へのリンク 問題概要 文字 #, . からなる長さ の文字列 が与えられる。次の条件を満たす整数 の個数を求めよ。 = # = . = # 考えたこと 次のように考えると実装しやすい。 各 に対して、文字列 の 文字目から 3 文字文…
関数 substr() の練習! 問題へのリンク 問題概要 4 文字以上 30 文字以下の文字列 が与えられる。 の末尾 3 文字が "san" であるかどうかを判定せよ。 考えたこと 文字列 の末尾 3 文字は S.substr(S.size() - 3) で取得できる。 これが "san" かどうかを判…
近年の ABC A 問題ではよくある「文字列の部分文字列を調べる」系の問題 問題へのリンク 問題概要 文字列 が与えられる。この文字列に含まれる "JOI" の個数と、"IOI" の個数をそれぞれ求めよ。 制約 考えたこと この問題よりも易しいバージョンとして、「文…
いろんな方法がある! ここでは、文字 '|' のある 2 つの添字を特定するという方法で挑むことにする。 問題へのリンク 問題概要 英小文字と | のみからなる文字列 が与えられる。 は | をちょうど 2 個含むことが保証される。 2 つの | の間にある文字および…
for 文のいい練習問題! 問題へのリンク 問題概要 英小文字と文字 . のみからなる文字列 が与えられる。 を文字 . で分割したときの末尾の文字列を出力してください。 制約 には文字 . が 1 つ以上含まれる 考えたこと まずは、 に含まれる文字 . のうち、最…
実は愚直に文字列 を作っても解ける! 問題へのリンク 問題概要 文字列 を、"oxx" を 個連結した文字列とする。 与えられた文字列 が、 の部分文字列であるかどうかを判定せよ。 制約 考えたこと 一般に、文字列 が文字列 を部分文字列にもつかどうかは次の…
文字列の部分文字列を取得する関数 substr() (C++) を用いるか、for 文で書こう。 問題へのリンク 問題概要 文字列 "atcoder" について、 文字目から 文字目までを出力せよ。 制約 解法 (1):関数 substr() を使う。 文字列 S に対して、 S.substr(i, l) は…
少し FizzBuzz チックな判定問題 問題へのリンク 問題概要 長さ の文字列 と、長さ の文字列 が与えられる。 であることが保証される。 が の prefix でも suffix でもあるとき:0 が の prefix であるが suffix ではないとき:1 が の prefix ではないが su…
「連続文字列」を処理する典型問題。 問題へのリンク 問題概要 文字 A, B, C のみからなる長さ の文字列 が与えられる。 文字列 に含まれる連続部分文字列 "ABC" のうち、それが始まる最小の添字を答えよ。"ABC" を含まない場合は -1 を出力せよ。 解法 (1)…
文字列の練習! 問題へのリンク 問題概要 英大文字のみからなる、長さ の文字列 が与えられる。 の末尾の文字が 'G' 以外のとき: の末尾に文字 'G' を挿入して得られる文字列を の末尾の文字が 'G' であるとき: の末尾の文字 'G' を削除して得られる文字列…
円周率の問題が出るのは多くの人が想定していた。円周率を文字列にしてしまえばいいという発想が少し難しいかもしれない。また、添字計算が少し大変だったかもしれない。 問題へのリンク 問題概要 円周率 の小数点第 100 位までは 3.14159265358979323846264…