teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追加情報

2020/10/17 16:01

投稿

Tomato_leaf
Tomato_leaf

スコア178

title CHANGED
File without changes
body CHANGED
@@ -27,76 +27,4 @@
27
27
  そしてそれを解決するために何か参考になる文献などありましたら
28
28
  教えていただけますと助かります。
29
29
 
30
- よろしくお願いします。
30
+ よろしくお願いします。
31
-
32
- ***追記***
33
-
34
- アドバイス頂いたとおりに検索すると
35
- 答えが以下のようにありました。
36
- ですが、いくつかの箇所が日本語に訳そうとしてもわかりませんでした。
37
-
38
- ```ここに言語を入力
39
- function verify(str){
40
- // brackets、bracket、bracketPositionに()[]{}を代入
41
- var brackets = "()[]{}",
42
- bracket,
43
- bracketPosition,
44
- // このスタックがなぜ必要なのかわかりません???
45
- stack = [];
46
-
47
- // 文字列strに()[]{}が入っているか調べる
48
- ()[]{}.indexOf(str[i])
49
-
50
- for (var i = 0, l = str.length; i < l; i++) {
51
- // 引数srtのインデックス番号をbracket変数に代入
52
- bracket = str[i];
53
-
54
- // bracketPosition変数にbrackets(つまり()[]{})がbracket(つまりstr)の中にあるか探す機能のメソッドを代入(ある場合はカッコのインデックスを返す)
55
- bracketPosition = brackets.indexOf(bracket);
56
- // bracketPositionが−1を返す(つまりstrの中に()[]{}がない)場合は次の繰り返し処理を開始
57
- if (bracketPosition == -1) continue;
58
- // bracketPositionが2の倍数で割り切れる時、つまりカッコがネストされている時、
59
- // スタックの中に???をプッシュする。この???の部分がわかりません。
60
- if (bracketPosition %2 === 0) {
61
- stack.push(brackets[bracketPosition+1]);
62
- }
63
- // そのほかはスタックの中の最後の要素とbracketが一致しない場合はfalseを返す
64
- else if (stack.pop() !== bracket) {
65
- return false;
66
- }
67
- }
68
- // スタックが空でないのを返す???少し意味がわかりませんでした。
69
- return !stack.length;
70
- }
71
- ```
72
-
73
-
74
- 具体的には
75
-
76
-
77
-
78
- **1、このスタックがなぜ必要なのかわかりません。。。**
79
-
80
- ```ここに言語を入力
81
- stack = [];
82
- ```
83
-
84
- **2、bracketPositionが2の倍数で割り切れる時、つまりカッコがネストされている時、
85
- スタックの中に???をプッシュする。この???の部分がわかりません。**
86
-
87
- ```ここに言語を入力
88
- if (bracketPosition %2 === 0) {
89
- stack.push(brackets[bracketPosition+1]);
90
- }
91
- ```
92
-
93
- **3、スタックが空でないのを返す???少し意味がわかりませんでした。**
94
-
95
- ```ここに言語を入力
96
- return !stack.length;
97
- ```
98
-
99
- の箇所です。
100
- 全体文も日本語訳を付けたので
101
- そちらも含め間違っている箇所をご指摘いただきますと助かります。
102
- 何卒よろしくお願い申し上げます。

1

追加情報

2020/10/17 16:01

投稿

Tomato_leaf
Tomato_leaf

スコア178

title CHANGED
File without changes
body CHANGED
@@ -27,4 +27,76 @@
27
27
  そしてそれを解決するために何か参考になる文献などありましたら
28
28
  教えていただけますと助かります。
29
29
 
30
- よろしくお願いします。
30
+ よろしくお願いします。
31
+
32
+ ***追記***
33
+
34
+ アドバイス頂いたとおりに検索すると
35
+ 答えが以下のようにありました。
36
+ ですが、いくつかの箇所が日本語に訳そうとしてもわかりませんでした。
37
+
38
+ ```ここに言語を入力
39
+ function verify(str){
40
+ // brackets、bracket、bracketPositionに()[]{}を代入
41
+ var brackets = "()[]{}",
42
+ bracket,
43
+ bracketPosition,
44
+ // このスタックがなぜ必要なのかわかりません???
45
+ stack = [];
46
+
47
+ // 文字列strに()[]{}が入っているか調べる
48
+ ()[]{}.indexOf(str[i])
49
+
50
+ for (var i = 0, l = str.length; i < l; i++) {
51
+ // 引数srtのインデックス番号をbracket変数に代入
52
+ bracket = str[i];
53
+
54
+ // bracketPosition変数にbrackets(つまり()[]{})がbracket(つまりstr)の中にあるか探す機能のメソッドを代入(ある場合はカッコのインデックスを返す)
55
+ bracketPosition = brackets.indexOf(bracket);
56
+ // bracketPositionが−1を返す(つまりstrの中に()[]{}がない)場合は次の繰り返し処理を開始
57
+ if (bracketPosition == -1) continue;
58
+ // bracketPositionが2の倍数で割り切れる時、つまりカッコがネストされている時、
59
+ // スタックの中に???をプッシュする。この???の部分がわかりません。
60
+ if (bracketPosition %2 === 0) {
61
+ stack.push(brackets[bracketPosition+1]);
62
+ }
63
+ // そのほかはスタックの中の最後の要素とbracketが一致しない場合はfalseを返す
64
+ else if (stack.pop() !== bracket) {
65
+ return false;
66
+ }
67
+ }
68
+ // スタックが空でないのを返す???少し意味がわかりませんでした。
69
+ return !stack.length;
70
+ }
71
+ ```
72
+
73
+
74
+ 具体的には
75
+
76
+
77
+
78
+ **1、このスタックがなぜ必要なのかわかりません。。。**
79
+
80
+ ```ここに言語を入力
81
+ stack = [];
82
+ ```
83
+
84
+ **2、bracketPositionが2の倍数で割り切れる時、つまりカッコがネストされている時、
85
+ スタックの中に???をプッシュする。この???の部分がわかりません。**
86
+
87
+ ```ここに言語を入力
88
+ if (bracketPosition %2 === 0) {
89
+ stack.push(brackets[bracketPosition+1]);
90
+ }
91
+ ```
92
+
93
+ **3、スタックが空でないのを返す???少し意味がわかりませんでした。**
94
+
95
+ ```ここに言語を入力
96
+ return !stack.length;
97
+ ```
98
+
99
+ の箇所です。
100
+ 全体文も日本語訳を付けたので
101
+ そちらも含め間違っている箇所をご指摘いただきますと助かります。
102
+ 何卒よろしくお願い申し上げます。