Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
44
Task/Balanced-brackets/FutureBasic/balanced-brackets.basic
Normal file
44
Task/Balanced-brackets/FutureBasic/balanced-brackets.basic
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
include "NSLog.incl"
|
||||
|
||||
local fn BracketBalance( strWithBracket as CFStringRef ) as CFStringRef
|
||||
NSInteger i, bracketTracker = 0
|
||||
CFStringRef result
|
||||
|
||||
CFCharacterSetRef bracketSet = fn CharacterSetWithCharactersInString( @"[]" )
|
||||
CFCharacterSetRef bracketsOnlySet = fn CharacterSetInvertedSet( bracketSet )
|
||||
CFArrayRef trimmedSArray = fn StringComponentsSeparatedByCharactersInSet( strWithBracket, bracketsOnlySet )
|
||||
CFStringRef trimmedStr = fn ArrayComponentsJoinedByString( trimmedSArray, @"" )
|
||||
|
||||
NSUInteger strLen = len( trimmedStr )
|
||||
|
||||
// Empty string, no brackets
|
||||
if ( strLen == 0 ) then result = @"No brackets" : exit fn
|
||||
// String with odd number of brackets is unbalanced
|
||||
if ( strLen mod 2 ) then result = @"Unbalanced" : exit fn
|
||||
|
||||
for i = 0 to strLen - 1
|
||||
CFStringRef bracket = fn StringWithFormat( @"%C", fn StringCharacterAtIndex( trimmedStr, i ) )
|
||||
if fn StringisEqual( bracket, @"[" ) then bracketTracker++
|
||||
if fn StringisEqual( bracket, @"]" ) then bracketTracker--
|
||||
if bracketTracker < 0 then result = @"Unbalanced" : break
|
||||
next
|
||||
if bracketTracker == 0 then result = @"Balanced"
|
||||
end fn = result
|
||||
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"" ) ), @"" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[" ) ), @"[" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"]" ) ), @"]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[]" ) ), @"[]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[[]" ) ), @"[[]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[]]" ) ), @"[]]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[][]" ) ), @"[][]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"][" ) ), @"][" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"][][" ) ), @"][][" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[[]][][][[][]]" ) ), @"[[]][][][[][]]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"][[]][][][]]][[" ) ), @"][[]][][][]]][[" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[[[abc]][[d]]]]]" ) ), @"[[[abc]][[def]]]]]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[[[abc]]][[[[[d]]]]]" ) ), @"[[[abc]]][[[[[def]]]]]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"[][abc]]][[[[[d]]]]]" ) ), @"[][abc]]][[[[[def]]]]]" )
|
||||
NSLog( @"%12s: %@", fn StringUTF8String( fn BracketBalance( @"The quick brown fox" ) ), @"The quick brown fox" )
|
||||
|
||||
HandleEvents
|
||||
Loading…
Add table
Add a link
Reference in a new issue