回答編集履歴
1
範囲外アクセスエラーの可能性について追記
test
CHANGED
@@ -3,3 +3,25 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
そのコードだと、例えば`hogemer`という文字列に対して`a == "mer"`がtrueになってしまいます。5文字、6文字、7文字と切り取ってみて判定するようにしてみてください。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
**追記**
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
末尾をn文字切り取る時に、Sがn文字に足りなかったら範囲外アクセスのエラーになります。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
例えば`S = "ab"`という文字列に対して`S.substr(n-3, 3);`を行おうとすると(私の環境では)`libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: basic_string`というエラーが出ます。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
文字を切り取る前に、文字列の長さが足りているかも考えなくてはいけないです。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
↓AC回答です。手詰まりになったら覗いてみてください
|
26
|
+
|
27
|
+
https://atcoder.jp/contests/abs/submissions/13463383
|