・オンライン実行環境でいくつか試してみたのですが、エラーになりました
・何の言語で書かれているでしょうか?
A[0] = -1; int j = -1; for (int i = 0; i < S.size(); i++) { while (j >= 0 && S[i] != S[j]) j = A[j]; j++; A[i+1] = j; }
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/26 07:24 編集
回答4件
0
ベストアンサー
別回答のZuishinさんの「メモ」と言うご指摘に同意です。勝手に補完すればC++としていけます。
C++
1$ cat do01.cpp 2 3#include <vector> 4 5int main() { 6 std::vector<int> A; 7 std::vector<int> S; 8 9 A.push_back(1); 10 S.push_back(1); 11 12 // ここから 13 A[0] = -1; 14 int j = -1; 15 for (int i = 0; i < S.size(); i++) { 16 while (j >= 0 && S[i] != S[j]) j = A[j]; 17 j++; 18 A[i+1] = j; 19 } 20 // ここまで 21 22 return 0; 23} 24 25$ g++ -std=c++11 do01.cpp
コンパイルだけは通ります。断片コードの意図は見出していません。
※追記
コピペ失敗していたので誤記を修正させていただきます。あと、オプション指定で、C++11である必要なかったです。警告出ますが、再度、コンパイル例。
$ g++ --version g++ (GCC) 6.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ g++ -Wall do01.cpp do01.cpp: 関数 ‘int main()’ 内: do01.cpp:13:20: 警告: 符号付きと符号無しの整数式の間での比較です [-Wsign-compar ] for (int i = 0; i < S.size(); i++) { ~~^~~~~~~~~~ $
投稿2018/03/26 01:56
編集2018/03/26 02:09総合スコア9254
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/28 01:42 編集
2018/03/28 02:01
2018/03/28 02:04 編集
2018/03/28 02:07
2018/03/28 02:14
2018/03/28 02:19
2018/03/28 02:36
2018/03/28 03:04
2018/03/28 03:10
0
一部抜粋したC++に見えます。
追記
見えている範囲だけで必ず配列外をアクセスするようになっています。(while文のところ)
何かを攻撃するためのコードでしょうか?
追記2
ショートサーキットを信じて配列外のアクセスしないのであれば、
Sの最初の数字と同じ数字の場所が1で、違う数字が0となる配列Aを作っているっぽいですね。
投稿2018/03/26 01:57
編集2018/03/26 02:45総合スコア8562
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
カッコの対応がとれていないので擬似言語でないならメモかなにかでしょう。
###追記
カッコの件は対応していました。
コメントと見誤りました。
しかし変数や関数の定義がされていないので擬似言語かメモでしょう。
投稿2018/03/26 01:45
編集2018/03/26 01:47総合スコア28662
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。