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

回答編集履歴

1

最初からやり直し

2019/10/13 15:39

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -16,4 +16,14 @@
16
16
  }
17
17
  }
18
18
  ```
19
- stack[-1]を参照しようとして落ちます。
19
+ stack[-1]を参照しようとして落ちます。
20
+
21
+ ひとまずこの点に関しては、thisをなくせば解決するのですが、それ以外にもこれらのクラスにはツッコミどころが満載で、ちまちま修正してたら大変なので、最初から作り直すことをお勧めします。
22
+ そもそも回文、というよりは逆転?した文字列を作りたいなら(サロゲートペアがない限り)char配列で事足りますからね。
23
+
24
+ 具体的に言うと、Stackクラスのpushメソッドだけ取り上げても、
25
+ - Objectで配列宣言している割に、pushで詰めているのはcharのみ。char配列で十分。
26
+ - 満杯判定が最初だけのため、空き容量より長い文字列になるものをpushすると例外が発生する。
27
+ - ループのたびに引数ObjectをtoStringしている。引数がStringならいいが、他のオブジェクトが入った場合、同じ文字列化をループする分繰り返すことになる。ループに入る前に1回で十分。
28
+
29
+ こんな感じで、他についても多数おかしな点があります。