zuka
ついに競技プログラミングを始めました!
本記事は,管理人の競技プロ精進日記としてログを取ったものです。モチベーションを爆上げするために積極的にアウトプットしていく作戦です。これから競技プログラミングを始めようと考えている人や,なんとなく敷居が高いと感じている人の参考になれば嬉しく思います。その他の記事は以下をご覧ください。
目次
本記事の概要
Atcoderが公表しているc++の入門記事の内容を1からさらっていくものです。今回は1.12.文字列と文字です。
実装
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
int main() {
string s;
int ans = 1;
cin >> s;
// 文字列の長さだけ繰り返す
rep(i, s.size()){
// もしiインデックスが'+'であれば
if (s[i]=='+')
// ansをインクリメント
ans++;
// もしiインデックスが'-'であれば
else if (s[i]=='-')
// ansをデクリメント
ans--;
}
// 解答出力
cout << ans << endl;
}
ポイント
今回おさえるべき内容
文字はchar
型で''
,文字列はstring
型で""
文字列の大きさは文字列.size()
で取得でき[]
を利用して要素にアクセスできる
文字列(文字)を+
すると連結される
競技プログラミングでは避けては通れないのが文字列(文字)の操作です。特に最初は,1つの文字を扱うchar
型と複数の文字を扱うstring
型を区別して理解する必要があります。char型は''
で表し,string型は""
で表します。pythonでは両方とも""で表してしまうので,ついつい間違えてタイプしがちなので要注意です。
文字列の大きさは文字列.size()
を利用すれば取得できます。for
ループの範囲などでよく利用されます。また,文字列の各要素には[]
を用いてアクセスすることができます。この際,文字列の大きさを超える添字を指定した場合にはエラーを吐いてしまうので気を付けてください。
文字列同士の演算も定義されています。整数型同士であれば小学校で習ったような演算をしてくれるのですが,文字列同士を足し算した場合には文字列が繋がります。
コメント