私は、サイコロを 20 回印刷し、繰り返される値を括弧でグループ化する必要がある演習に取り組んでいます。以下の私のコードは、私が読んでいる本が使用するように言っている疑似コードに従います。繰り返される値を括弧でグループ化することはできますが、次の演習では、最も多く繰り返される値を括弧でグループ化する必要があります。
例えば:
(333)51314121(22)326(55)14
だろう:
(333)51314121223265514
編集: 繰り返される値の最大のグループが複数ある場合は、最初のグループのみが括弧でグループ化されます。
どうすればこれを達成できますか? これについて何か助けてくれてありがとう。
public void run() {
Random generator = new Random();
ArrayList<Integer> a = new ArrayList<Integer>();
for (int i = 0; i < 21; i++) {
int die = generator.nextInt(6)+ 1;
a.add(die);
}
for (int j = 0; j < a.size() - 1; j++) {
if (inRun) {
if (a.get(j) != a.get(j - 1)) {
System.out.print(")");
inRun = false;
}
}
else {
if (a.get(j) == a.get(j + 1)) {
System.out.print("(");
inRun = true;
}
}
System.out.print(a.get(j));
}
if (inRun) {
System.out.print(")");
}
}