Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
72
Task/Balanced-brackets/Action-/balanced-brackets.action
Normal file
72
Task/Balanced-brackets/Action-/balanced-brackets.action
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
PROC Generate(BYTE size CHAR ARRAY s)
|
||||
BYTE i,half
|
||||
|
||||
s(0)=size
|
||||
half=size RSH 1
|
||||
|
||||
FOR i=1 TO half
|
||||
DO s(i)='[ OD
|
||||
|
||||
FOR i=half+1 TO size
|
||||
DO s(i)='] OD
|
||||
RETURN
|
||||
|
||||
PROC Shuffle(CHAR ARRAY s)
|
||||
BYTE i,j,k,n,len,tmp
|
||||
|
||||
len=s(0)
|
||||
n=Rand(len+1)
|
||||
FOR k=1 TO n
|
||||
DO
|
||||
i=Rand(len)+1
|
||||
j=Rand(len)+1
|
||||
tmp=s(i)
|
||||
s(i)=s(j)
|
||||
s(j)=tmp
|
||||
OD
|
||||
RETURN
|
||||
|
||||
BYTE FUNC Balanced(CHAR ARRAY s)
|
||||
INT i,lev
|
||||
|
||||
lev=0
|
||||
FOR i=1 TO s(0)
|
||||
DO
|
||||
IF s(i)='[ THEN
|
||||
lev==+1
|
||||
ELSE
|
||||
lev==-1
|
||||
FI
|
||||
|
||||
IF lev<0 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
OD
|
||||
|
||||
IF lev#0 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
RETURN (1)
|
||||
|
||||
PROC Main()
|
||||
CHAR ARRAY s(20)
|
||||
BYTE i,b
|
||||
|
||||
FOR i=0 TO 20 STEP 2
|
||||
DO
|
||||
Generate(i,s)
|
||||
Shuffle(s)
|
||||
b=Balanced(s)
|
||||
|
||||
IF s(0)=0 THEN
|
||||
Print("(empty)")
|
||||
ELSE
|
||||
Print(s)
|
||||
FI
|
||||
Print(" is ")
|
||||
IF b=0 THEN
|
||||
Print("not ")
|
||||
FI
|
||||
PrintE("balanced")
|
||||
OD
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue