ylistから1 つのリストを削除する関数がありますx。前提条件は、出現リストyが のサブセットであるということですx- に現れる文字は に現れyなければならず、におけるその頻度 <=xにおけるその頻度でなければなりません。yx
結果の値はオカレンスです。つまり、並べ替えられており、ゼロ エントリはありません。
これは私のオリジナルのコードです。これは Scala progfun の割り当てのためのものでした。今、私は正しい答えが何であったかについて興味があります。
type Occurrences = List[(Char, Int)]
def subtract(x: Occurrences, y: Occurrences): Occurrences = x filterNot (y contains)
次の単体テストに合格する必要があります。
テスト 1
test("subtract: lard - r") {
val lard = List(('a', 1), ('d', 1), ('l', 1), ('r', 1))
val r = List(('r', 1))
val lad = List(('a', 1), ('d', 1), ('l', 1))
assert(subtract(lard, r) === lad)
}
テスト 2
// subtract: jimmy - my
List((i,1), (j,1), (m,1), (y,0)) did not equal List((i,1), (j,1), (m,1))
テスト 3
//subtract: ok - ok
List((k,0), (o,0)) did not equal List()
テスト 4
//subtract: abba - abba
List((a,0), (b,0)) did not equal List()
テスト 5
//subtract: assessment - assess