けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

【問題集】易しい文字列の問題

AtCoder ABC 119 A - Still TBD (灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…

AtCoder ABC 111 A - AtCoder Beginner Contest 999 (灰色, 100 点)

文字列として処理する方が楽であろう。 問題へのリンク 問題概要 3 桁の整数 が与えられる。 の各桁の値について、1 は 9 に変換し、9 は 1 に変換したものを出力せよ。 解法 整数ではなく、文字列として処理する方が楽だと思われる。各文字について、 '1' …

AtCoder ABC 335 A - 202<s>3</s> (灰色, 100 点)

ここのところ、結構易しめの A 問題が続いているね! 問題へのリンク 問題概要 "hello2023" のように、"2023" で終わる文字列 が与えられる。 末尾の文字を '4' に変更して出力せよ。 解法 C++ では、文字列 の末尾の文字は S.back() でアクセスできる。 #in…

AtCoder ABC 090 A - Diagonal String (灰色, 100 点)

文字列の扱いに慣れよう! 問題へのリンク 問題概要 の形に並べられた文字盤が与えられる。この文字盤の対角線上の文字を並べて得られる 3 文字の文字列を答えよ。 解法 入力を 3 つの文字列としてうけとり、それぞれの 0 文字目、1 文字目、2 文字目を答え…

AtCoder ABC 085 A - Already 2018 (灰色, 100 点)

実務をやっていると汎用性など考えたくなるけど、これは入力が限定されているので、「特定の文字を変える」だけで OK! 問題へのリンク 問題概要 2017 年の日付が "2017/01/19" などと与えられる。 これを "2018/01/19" のように、2018 年の日付に変換せよ。…

AtCoder ABC 081 A - Placing Marbles (灰色, 100 点)

ABS にも採用した問題! 問題へのリンク 問題概要 長さが 3 の文字列 が与えられる。この文字列の文字は '0' か '1' である。 '1' が何文字あるかを答えよ。 解法 3 文字それぞれについて、'1' かどうかを調べれば OK。 #include <bits/stdc++.h> using namespace std; int </bits/stdc++.h>…

AtCoder ABC 070 A - Palindromic Number (灰色, 100 点)

を文字列として受け取るのが楽だと思う! 問題へのリンク 問題概要 3 桁の整数 が与えられる。 が回文数であるかどうかを判定せよ。 解法 を整数ではなく、文字列として受け取ろう。そうすれば 「先頭の文字と末尾の文字が等しいかどうか」 を判定すれば OK…

AtCoder ABC 060 A - Shiritori (灰色, 100 点)

3 つの文字列がしりとりになっているかを判定する問題 問題へのリンク 問題概要 3 つの文字列 が与えられる。 これらが「しりとり」になっているかどうかを判定せよ。 解法 文字列 A の末尾の文字は A.back() で取得できる。 A.back() == B[0] かつ B.back()…

AtCoder ABC 059 A - Three-letter acronym (灰色, 100 点)

略語を求める問題! 問題へのリンク 問題概要 "atcoder beginner contest" のような文字列に対して、 "ABC" のように、先頭の文字を大文字にして繋げた文字列を求めよ。 解法 3 つの文字列 を入力として受け取って、その先頭の文字を大文字にして繋げれば OK…

AtCoder ABC 051 A - Haiku (灰色, 100 点)

文字列から "," を取り除く問題 問題へのリンク 問題概要 文字列 が与えられる。 は 19 文字であり、6 文字目と 14 文字目が ',' であることが保証される。 ',' を空白文字 ' ' に置き換えて得られる文字列を出力せよ。 たとえば、"haiku,atcoder,tasks" は …

AtCoder ABC 049 A - 居合を終え、青い絵を覆う (灰色, 100 点)

if 文を使う! 問題へのリンク 問題概要 英小文字 が与えられる。 が母音かどうかを判定せよ。 解法 が 'a', 'i', 'u', 'e', 'o' のいずれかであるかを if 文を用いて判定する。 #include <bits/stdc++.h> using namespace std; int main() { char c; cin >> c; if (c == 'a</bits/stdc++.h>…

AtCoder ABC 329 A - Spread (灰色, 100 点)

与えられた文字列を空白区切りで出力する問題。なお、末尾に空白が入っていても AC になる! 問題へのリンク 問題概要 文字列 が与えられるので、各文字を空白区切りで出力せよ。 解法 次のコードのように、文字列 の各文字 について、 文字 を出力する 空白…

AtCoder ABC 306 A - Echo (灰色, 100 点)

これは最近の ABC A 問題では易しめ!! 問題へのリンク 問題概要 文字列 が与えられる。この文字列の各文字を 2 回ずつ繰り返した文字列を出力せよ。 たとえば、"beginner" は "bbeeggiinnnneerr" となる。 コード for 文を用いて、文字列 の各文字 を順に…

AtCoder ABC 327 A - ab (灰色, 100 点)

文字列の練習! 問題へのリンク 問題概要 英小文字からなる長さ の文字列 が与えられる。 この文字列 中に、文字 'a' と 'b' が隣接する箇所があるかどうかを判定せよ。 考えたこと for 文を用いて判定していく。添字 i を回していき、 S[i] == 'a' and S[i+…

AtCoder ABC 299 A - Treasure Chest (灰色, 100 点)

3 重の for 文を書くのが楽だと思う 問題へのリンク 問題概要 3 種類の文字 .、|、* からなる、長さ の文字列 が与えられる。 には | がちょうど 2 つ、* がちょうど 1 つ含まれる。 * が 2 つの | に挟まれているかどうかを判定せよ。 考えたこと 色々な解…

AtCoder ABC 320 B - Longest Palindrome (灰色, 200 点)

最長回文を求める問題! 問題へのリンク 問題概要 文字列 が与えられる。 の連続する部分文字列のうち、回文であるものについて、最長の長さを求めよ。 考えたこと この問題は次の 2 ステップに分かれている。 の連続する部分文字列を全種類抜き取る それら…

AtCoder ABC 325 A - Takahashi san (灰色, 100 点)

久しぶりに本当に簡単だと言える A 問題! 問題へのリンク 問題概要 2 つの文字列 が与えられる (これは苗字と名前を表している)。 + " " + "san" を出力せよ。 コード 標準入力から文字列を受け取る技術があれば解ける問題。 を出力したあと、" san" を出力…

AtCoder ABC 048 A - AtCoder *** Contest (灰色, 100 点)

文字列の標準入力と、先頭の文字がわかっていれば解ける系 問題へのリンク 問題概要 "AtCoder s Contest" という形の文字列 が与えられる (s の部分は任意)。 たとえば、"AtCoder Beginner Contest" のような文字列が与えられる。これを "ABC" のように略し…

AtCoder ABC 322 B - Prefix and Suffix (灰色, 200 点)

少し FizzBuzz チックな判定問題 問題へのリンク 問題概要 長さ の文字列 と、長さ の文字列 が与えられる。 であることが保証される。 が の prefix でも suffix でもあるとき:0 が の prefix であるが suffix ではないとき:1 が の prefix ではないが su…

AtCoder ABC 322 A - First ABC 2 (灰色, 100 点)

「連続文字列」を処理する典型問題。 問題へのリンク 問題概要 文字 A, B, C のみからなる長さ の文字列 が与えられる。 文字列 に含まれる連続部分文字列 "ABC" のうち、それが始まる最小の添字を答えよ。"ABC" を含まない場合は -1 を出力せよ。 解法 (1)…

JOIG 2023 A - 末尾の文字 (AOJ 0757, 難易度 1)

文字列の練習! 問題へのリンク 問題概要 英大文字のみからなる、長さ の文字列 が与えられる。 の末尾の文字が 'G' 以外のとき: の末尾に文字 'G' を挿入して得られる文字列を の末尾の文字が 'G' であるとき: の末尾の文字 'G' を削除して得られる文字列…

JOI 予選 2007 C - シーザー暗号 (AOJ 0512, 難易度 2)

アルファベットを戻す処理を書くのが最初は難しいかもしれない 問題へのリンク editorial 問題概要 シーザー暗号とは、文字列に対して、各文字を 3 つずつ進めたものに変換するものである。ただし、X, Y, Z はそれぞれ A, B, C となる。具体的には、次のよう…

AtCoder ABC 311 A - First ABC (灰色, 100 点)

フラグ変数を 3 個持ってもいいし、set 型を使ってもいい 問題へのリンク 問題概要 文字 'A', 'B', 'C' のみからなる、長さ の文字列 が与えられます。 S を左から 1 文字ずつ見ていったときに、はじめて「A, B, C がすべて 1 回以上出現している」という条…

AtCoder ABC 122 B - ATCoder (灰色, 200 点)

E8君問題集第3問! 問題へのリンク 問題概要 長さ の文字列 が与えられる。 の連続する部分列であって、'A', 'C', 'G', 'T' のみからなる部分の長さの最大値を求めよ。 制約 考えたこと が小さいので、全部調べても間に合う。連続する部分列は 個ある。 それ…

AtCoder ABC 315 A - tcdr (灰色, 100 点)

文字列の練習問題 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 から文字 a, e, i, o, u をすべて取り除いて得られる文字列を出力せよ。 解法 「取り除く」という処理を書くのは面倒なので、代わりに「 の文字のうち、a, e, i, o, u 以外…

AtCoder ABC 314 A - 3.14 (灰色, 100 点)

円周率の問題が出るのは多くの人が想定していた。円周率を文字列にしてしまえばいいという発想が少し難しいかもしれない。また、添字計算が少し大変だったかもしれない。 問題へのリンク 問題概要 円周率 の小数点第 100 位までは 3.14159265358979323846264…