tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
18
Task/Set-consolidation/Tcl/set-consolidation-1.tcl
Normal file
18
Task/Set-consolidation/Tcl/set-consolidation-1.tcl
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
package require struct::set
|
||||
|
||||
proc consolidate {sets} {
|
||||
if {[llength $sets] < 2} {
|
||||
return $sets
|
||||
}
|
||||
|
||||
set r [list {}]
|
||||
set r0 [lindex $sets 0]
|
||||
foreach x [consolidate [lrange $sets 1 end]] {
|
||||
if {[struct::set size [struct::set intersect $x $r0]]} {
|
||||
struct::set add r0 $x
|
||||
} else {
|
||||
lappend r $x
|
||||
}
|
||||
}
|
||||
return [lset r 0 $r0]
|
||||
}
|
||||
4
Task/Set-consolidation/Tcl/set-consolidation-2.tcl
Normal file
4
Task/Set-consolidation/Tcl/set-consolidation-2.tcl
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
puts 1:[consolidate {{A B} {C D}}]
|
||||
puts 2:[consolidate {{A B} {B D}}]
|
||||
puts 3:[consolidate {{A B} {C D} {D B}}]
|
||||
puts 4:[consolidate {{H I K} {A B} {C D} {D B} {F G H}}]
|
||||
Loading…
Add table
Add a link
Reference in a new issue