回答編集履歴

2

指摘反映

2020/05/14 01:11

投稿

momon-ga
momon-ga

スコア4826

test CHANGED
@@ -75,3 +75,23 @@
75
75
  }
76
76
 
77
77
  ```
78
+
79
+
80
+
81
+ 以下コメント
82
+
83
+
84
+
85
+ > そのやり方では、乱数が
86
+
87
+ a c b a c b c a c b c a b
88
+
89
+ のような列を生成した時、最初の a c b c を検出できず、
90
+
91
+ 2つ目の a c b c で終了します。
92
+
93
+
94
+
95
+ その通りです。
96
+
97
+ 単純にposを0にするのがダメですが、直すのは面倒なのでこのまま放置。

1

あらら・・・

2020/05/14 01:10

投稿

momon-ga
momon-ga

スコア4826

test CHANGED
@@ -33,3 +33,45 @@
33
33
 
34
34
 
35
35
  最後の4文字の比較は、[String#lastIndexOf](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/lang/String.html#lastIndexOf(java.lang.String))というのがあります。
36
+
37
+
38
+
39
+ ---
40
+
41
+ あらら退会しちゃいましたか。
42
+
43
+ 元のソースっぽくやるなら以下みたいなのを想定していたのだろうかと。
44
+
45
+
46
+
47
+ ```java
48
+
49
+ int pos = 0;
50
+
51
+ String[] ans = {"a","c","b","c"};
52
+
53
+ String[] mozi = {"a","b","c"};
54
+
55
+ Random r = new Random();
56
+
57
+ for(int i=0 ; i<1000; i++) {
58
+
59
+ String s = mozi[r.nextInt(3)];
60
+
61
+ System.out.println(s);
62
+
63
+ if(s.equals(ans[pos])) { // s と ans をcharにすれば== 比較ができる
64
+
65
+ pos++; // ansの確認を a -> c -> b -> c という風にずらしていく
66
+
67
+ if(pos == ans.length) break; // 最後まで一致したらループ終了
68
+
69
+ } else {
70
+
71
+ pos = 0; // 最初からやりなおし
72
+
73
+ }
74
+
75
+ }
76
+
77
+ ```