Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
60
Task/Set-consolidation/PureBasic/set-consolidation.basic
Normal file
60
Task/Set-consolidation/PureBasic/set-consolidation.basic
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
Procedure.s Consolidate(s.s)
|
||||
Dim sets.s(100)
|
||||
Define.i n, i, j, k, p
|
||||
Define.s ts.s, temp.s
|
||||
|
||||
n = 0
|
||||
For i = 1 To Len(s)
|
||||
If Mid(s, i, 1) = ",":
|
||||
n + 1
|
||||
Else
|
||||
sets(n) = sets(n) + Mid(s, i, 1)
|
||||
EndIf
|
||||
Next i
|
||||
|
||||
For i = 0 To n
|
||||
p = i
|
||||
ts = ""
|
||||
For j = i To 0 Step -1
|
||||
If ts = "":
|
||||
p = j
|
||||
EndIf
|
||||
ts = ""
|
||||
For k = 1 To Len(sets(p))
|
||||
If j > 0:
|
||||
If FindString(sets(j-1), Mid(sets(p), k, 1)) = 0:
|
||||
ts = ts + Mid(sets(p), k, 1)
|
||||
EndIf
|
||||
EndIf
|
||||
Next k
|
||||
If Len(ts) < Len(sets(p)):
|
||||
If j > 0:
|
||||
sets(j-1) = sets(j-1) + ts
|
||||
sets(p) = "-"
|
||||
ts = ""
|
||||
EndIf
|
||||
Else
|
||||
p = i
|
||||
EndIf
|
||||
Next j
|
||||
Next i
|
||||
|
||||
temp = sets(0)
|
||||
For i = 1 To n
|
||||
temp = temp + "," + sets(i)
|
||||
Next i
|
||||
|
||||
ProcedureReturn s + " = " + temp
|
||||
EndProcedure
|
||||
|
||||
OpenConsole()
|
||||
Dim test.s(3) ;= {"AB","AB,CD","AB,CD,DB","HIK,AB,CD,DB,FGH"}
|
||||
test(0) = "AB"
|
||||
test(1) = "AB,CD"
|
||||
test(2) = "AB,CD,DB"
|
||||
test(3) = "HIK,AB,CD,DB,FGH"
|
||||
For t.i = 0 To 3
|
||||
PrintN(Consolidate(test(t)))
|
||||
Next t
|
||||
PrintN(#CRLF$ + "Press ENTER to exit"): Input()
|
||||
CloseConsole()
|
||||
Loading…
Add table
Add a link
Reference in a new issue