並列プログラミングのためにcoursera scalaコースに参加しています。 Paranthesis Balancerを連続的にも並列的にも解決する課題があります。私は逐次関数を解いた。パラレル関数については、パラレルスレッド間で現在のパラントシスデータをどのように維持できるかについて疑問があります。ここで括弧バランサの並列処理を作成する
は私のシーケンシャル・ファンクションです:
def balance(chars: Array[Char]): Boolean = {
def helper(arr: Array[Char], acc: Int): Boolean = {
if (arr.isEmpty && acc ==0)
true
else if (arr.isEmpty || arr.head == ')' && acc <=0)
false
else if (arr.head == '(')
helper(arr.tail, acc +1)
else if (arr.head == ')')
helper(arr.tail, acc - 1)
else
helper(arr.tail, acc)
}
helper(chars, 0)
}
今、私の全体のロジックは、ACC値に基づいています。これらを複数のスレッドに渡って実行する場合、私は何に焦点を当てるべきですか?パラレルメソッドには範囲の開始と終了のインデックスがあります。これまでに私が理解している唯一のことは、これらの操作のすべてがacc == 0であることです。
私にこの方向の指針を教えてください。原因コーセラルールに
おかげ
ありがとうございます。私は、テストケースの90%に合格した他のコンセプトを使って解決したと思います。私はそれを再度提出できるかどうかは確かではありませんが、このアプローチを間違いなく試みます。 – kromastorm