38 lines
1.2 KiB
Text
38 lines
1.2 KiB
Text
100 REM Determine if a string is collapsible
|
|
110 DECLARE EXTERNAL FUNCTION Collapse$
|
|
120 READ N
|
|
130 FOR J = 1 TO N
|
|
140 READ StrIn$
|
|
150 LET StrOut$ = Collapse$(StrIn$)
|
|
160 PRINT LEN(StrIn$); "<<<"; StrIn$; ">>>"
|
|
170 PRINT LEN(StrOut$); "<<<"; StrOut$; ">>>"
|
|
180 PRINT
|
|
190 NEXT J
|
|
200 DATA 5
|
|
210 DATA ""
|
|
220 DATA "'If I were two-faced, would I be wearing this one?' --- Abraham Lincoln "
|
|
230 DATA "..1111111111111111111111111111111111111111111111111111111111111117777888"
|
|
240 DATA "I never give 'em hell, I just tell the truth, and they think it's hell. "
|
|
250 DATA " --- Harry S Truman "
|
|
260 END
|
|
270 !
|
|
280 EXTERNAL FUNCTION Collapse$(StrIn$)
|
|
290 IF StrIn$ = "" THEN
|
|
300 LET StrOut$ = StrIn$
|
|
310 ELSE
|
|
320 LET StrOut$ = REPEAT$(" ", LEN(StrIn$))
|
|
330 LET A$ = StrIn$(1:1)
|
|
340 LET StrOut$(1:1) = A$
|
|
350 LET T = 2
|
|
360 FOR I = 2 TO LEN(StrIn$)
|
|
370 LET B$ = StrIn$(I:I)
|
|
380 IF A$ <> B$ THEN
|
|
390 LET StrOut$(T:T) = B$
|
|
400 LET T = T + 1
|
|
410 LET A$ = B$
|
|
420 END IF
|
|
430 NEXT I
|
|
440 LET StrOut$ = StrOut$(1 : T - 1)
|
|
450 END IF
|
|
460 LET Collapse$ = StrOut$
|
|
470 END FUNCTION
|