文字列
for 文を使うと少し楽。 問題へのリンク 問題概要 8 種類の方角を表す文字列 が与えられる。次のいずれかである。 北:N 東:E 西:W 南:S 北東:NE 北西:NW 南東:SE 南西:SW 与えられた文字列の反対の方角を表す文字列を出力せよ。 解法 8 通りの場合を…
種類数に関する面白い問題! 問題へのリンク 問題概要 2 つの文字列 は、 である を左右反転してできる文字列 について、 である といういずれかの条件を満たすとき、似ているとみなす。 与えられた 個の文字列 について、似ている文字列は同一視することに…
set の練習問題! 問題へのリンク 問題概要 個の文字列 が与えられる。 重複を除くと何種類の文字列があるでしょうか。 制約 文字列長さは 10 以下 考えたこと 重複を除外したいとなったら、集合型(C++ ならば set 型)が使える! 具体的には、set<string> 型の変数</string>…
set の練習問題! 問題へのリンク 問題概要 個の文字列 と、 個の文字列 が与えられる。 について、 の中に と一致するものがあるかどうかを判定せよ。 制約 各文字列の長さは 10 以下 考えたこと set 型のよい練習問題。 を格納する集合(C++ であれば set<string> </string>…
面白かった! 問題へのリンク 問題概要 英小文字および文字 '?' からなる文字列 が与えられる。 の各 '?' を英小文字に置き換えてできる文字列のうち、次の条件を満たす辞書順最小のものを求めよ。 (条件) 文字列 を連続する部分文字列として含む 制約 考え…
基本的な文字列操作の問題! 問題へのリンク 問題概要 文字列 が与えられる。 の先頭の文字に "UPC" を付け加えてできる文字列を出力せよ。 考えたこと 文字列 S の先頭の文字は S[0] によって取得できる。その文字を出力したあと、続けて "UPC" を出力すれ…
完全既出は珍しい! 問題へのリンク 問題概要 "6x4" のような、「一桁かける一桁」の計算を表す 3 文字の文字列 が与えられる。この計算結果を求めよ。 考えたこと この問題と完全に同じですね。 drken1215.hatenablog.com コード #include <bits/stdc++.h> using namespace</bits/stdc++.h>…
全探索に慣れよう! 問題へのリンク 問題概要 同じ文字列を二個連結してできるような文字列を「偶文字列」とよぶ。 与えられた偶文字列 について、末尾の文字を 1 文字以上消して作れる偶文字列のうち、その最大長を答えよ。 制約 考えたこと 全探索しよう!…
現代の AtCoder にはあまりない「一行読み込み」を要求する問題 問題へのリンク 問題概要 "Left Left Right Right AtCoder" のように、"Left", "Right", "AtCoder" のいずれかを空白区切りで連結した文字列が一行で与えられる。 "Left" は "<" に replace し…
とても教育的な易しい問題! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 の文字がすべて互いに相異なるかどうかを判定せよ。 解法 (1):多重 for 文 最も素朴な方法は、 から 2 文字を選ぶ方法をすべて試して、「それらが異なっている…
for 文の基本問題 問題へのリンク 問題概要 長さ の文字列 が与えられる。 の各文字について、文字 でないものをすべて文字 に置き換えたものを出力せよ。 考えたこと for 文の練習問題といえる。 for 文を用いて、 の各文字について、 であるかどうかを判定…
近年の B 問題では最も簡単かもしれない。 問題へのリンク 問題概要 文字 .、@ からなる長さ の文字列 が与えられる。後ろから順に 個の @ を . に変えたものを出力せよ。 考えたこと for 文を用いて、添字を という降順に回していき、 S[i] == '@' のとき …
ちゃんと整理するのは大変だ。落ち着いて整理しよう。 問題へのリンク 問題概要 長さ の文字列 が与えられる。 が "11/22 文字列" であるかどうかを判定せよ。 11/22 文字列であるとは、文字 1, /, 2 がこの順に並んでいて、1 と 2 の個数が等しいものをいう…
問題文がややこしい書き方をしているけど、「要するにこういうこと!」という言い換えができるといい。 問題へのリンク 問題概要 文字 ., @ からなる長さ の文字列 が与えられる。@ を左から順に 個だけ . に書き換える。 書き換えたあとの文字列に含まれる…
これ実は「アルファベット文字の変換テーブルを愚直に作る」という素朴な方法が解けるけど、意外と盲点になりそうだ! 問題へのリンク 問題概要 英小文字のみからなる長さ の文字列 が与えられる。次の 回の操作を実行後の文字列を出力せよ。 【操作】 文字 …
ランレングス圧縮で解いた 問題へのリンク 問題概要 0 と 1 からなる長さ の文字列 が与えられる。この文字列の中での「1 の塊」のうち、左から 番目のものを、 番目のものの右に移動させよ。 例:"010011100011001" → "010011111000001" 制約 考えたこと ま…
初歩的な構文解析問題 問題へのリンク 問題概要 "|---|-|----|-|-----|" のような、文字 '-' を文字 '|' で separate された文字列 が与えられる。 各 '-' 区間の '-' の個数を順に出力せよ。 制約 考えたこと ここでは for 文で解いてみよう。次の変数を管…
この問題は、for 文でも解けるし、map でも解ける。ここでは map で解いてみよう。 問題へのリンク 問題概要 個の文字列 と、 個の文字列 が与えられる。 これに対して文字列を考えて、その文字列に対するスコアは ( に含まれている分の個数) - ( に含まれて…
if 文を並べてもいいし、map を使ってもよさそう。 問題へのリンク 問題概要 文字列 が与えられる。 の各文字に対して、 O → 0 D → 0 I → 1 Z → 2 S → 5 B → 8 それ以外 → そのまま という変換をして得られる文字列を答えよ。 コード (1):if 文 if 文を使っ…
辞書順最小と言われたら......!! 問題へのリンク 問題概要 文字 'd', 'p' からなる長さ の文字列 が与えられる。 この文字列のある区間をとって、その区間を 180 度回転させる(reverse した上で、'd' と 'p' を入れ替える)。 こうしてできる文字列のうち…
制約が小さいので for 文だけでも解けるし、map などを使うともっと楽になる。 問題へのリンク 問題概要 個の文字列 が与えられる。 登場回数の最も多い文字列を答えよ(タイがある場合はどれを答えても良い)。 制約 考えたこと 次の連想配列を用いて解いた…
昔の ABC A 問題はこういうのよくあった! 問題へのリンク 問題概要 3 文字の文字列 が与えられる。これを並び替えることで "ABC" に一致させることができるかどうかを判定せよ。 考えたこと 並び替えて "ABC" に一致する文字列は "ABC" "ACB" "BAC" "BCA" "…
文字列を for 文で調べる系の問題 問題へのリンク 問題概要 文字 #, . からなる長さ の文字列 が与えられる。次の条件を満たす整数 の個数を求めよ。 = # = . = # 考えたこと 次のように考えると実装しやすい。 各 に対して、文字列 の 文字目から 3 文字文…
スタックによるシミュレーション問題! 問題へのリンク 問題概要 整合のとれたカッコ列に対して、英小文字がいくつか挿入されてできる文字列が与えられる (たとえば、"(a(ba))c")。 このような文字列に対して、高橋君が気絶するかどうかを判定したい。次のよ…
巨大な整数値の大小比較の問題 問題へのリンク 問題概要 2 つの正の整数 (101 桁以下)が与えられるので、その大小比較をせよ。 考えたこと は 100 桁にも及ぶことがあるので、long long 型などで受け取ることもできない。そこで、string 型で受け取ろう。…
集計処理の応用問題 問題へのリンク 問題概要 一般に、文字列 からいくつかの文字を抜き出して、それを並び替えることによって文字列 を作れるとき、 から を作れるという。 英小文字からなる 個の文字列 が与えられる。 のいずれからも作れる文字列 のうち…
2 つの文字列の長さが等しかったり、異なったりするのが少しイヤだが、難しくはない。 問題へのリンク 問題概要 文字列 が与えられる。 または である。 の各文字を先頭から順に交互にとって得られる文字列を出力せよ。 考えたこと まずは、 に対して、 と …
文字列 のサイズが異なる場合の処理などがちょっとだけややこしい。 問題へのリンク 問題概要 文字列 が与えられる。次のいずれかの条件を満たす最小の を求めよ。ただし、 である場合は 0 と答えよ。 かつ であって、 である ] かつ である ] かつ である …
関数 substr() の練習! 問題へのリンク 問題概要 4 文字以上 30 文字以下の文字列 が与えられる。 の末尾 3 文字が "san" であるかどうかを判定せよ。 考えたこと 文字列 の末尾 3 文字は S.substr(S.size() - 3) で取得できる。 これが "san" かどうかを判…
各文字がどこにあるのかを求めると楽になる。 問題へのリンク 問題概要 'A' から 'Z' までの文字を 1 つずつ含む文字列 が与えられる。 内部での 'A' から 'B' への移動距離 (index の差分) 'B' から 'C' への移動距離 (index の差分) 'C' から 'D' への移動…