Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
55
Task/Run-length-encoding/BASIC/run-length-encoding.basic
Normal file
55
Task/Run-length-encoding/BASIC/run-length-encoding.basic
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
DECLARE FUNCTION RLDecode$ (i AS STRING)
|
||||
DECLARE FUNCTION RLEncode$ (i AS STRING)
|
||||
|
||||
DIM initial AS STRING, encoded AS STRING, decoded AS STRING
|
||||
|
||||
INPUT "Type something: ", initial
|
||||
encoded = RLEncode(initial)
|
||||
decoded = RLDecode(encoded)
|
||||
PRINT initial
|
||||
PRINT encoded
|
||||
PRINT decoded
|
||||
|
||||
FUNCTION RLDecode$ (i AS STRING)
|
||||
DIM Loop0 AS LONG, rCount AS STRING, outP AS STRING, m AS STRING
|
||||
|
||||
FOR Loop0 = 1 TO LEN(i)
|
||||
m = MID$(i, Loop0, 1)
|
||||
SELECT CASE m
|
||||
CASE "0" TO "9"
|
||||
rCount = rCount + m
|
||||
CASE ELSE
|
||||
IF LEN(rCount) THEN
|
||||
outP = outP + STRING$(VAL(rCount), m)
|
||||
rCount = ""
|
||||
ELSE
|
||||
outP = outP + m
|
||||
END IF
|
||||
END SELECT
|
||||
NEXT
|
||||
RLDecode$ = outP
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION RLEncode$ (i AS STRING)
|
||||
DIM tmp1 AS STRING, tmp2 AS STRING, outP AS STRING
|
||||
DIM Loop0 AS LONG, rCount AS LONG
|
||||
|
||||
tmp1 = MID$(i, 1, 1)
|
||||
tmp2 = tmp1
|
||||
rCount = 1
|
||||
|
||||
FOR Loop0 = 2 TO LEN(i)
|
||||
tmp1 = MID$(i, Loop0, 1)
|
||||
IF tmp1 <> tmp2 THEN
|
||||
outP = outP + LTRIM$(RTRIM$(STR$(rCount))) + tmp2
|
||||
tmp2 = tmp1
|
||||
rCount = 1
|
||||
ELSE
|
||||
rCount = rCount + 1
|
||||
END IF
|
||||
NEXT
|
||||
|
||||
outP = outP + LTRIM$(RTRIM$(STR$(rCount)))
|
||||
outP = outP + tmp2
|
||||
RLEncode$ = outP
|
||||
END FUNCTION
|
||||
Loading…
Add table
Add a link
Reference in a new issue