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