%20
in buffer with spaces at end. "this.is.a.test......" "this%20is%20a%20test"Test cases:
".test.." "%20test" "test..." "test%20" "..." "%20" "........." "%20%20%20" throw exception for: "...test" "..test."3 passes: count spaces, verify actual spaces, convert spaces.
Throw if
- spaces %3 is not 0
- the spaces aren't within actual length.
convert-spaces(s): spaces = countspaces(s) if spaces == 0: return i = s.length()-1 - (spaces*2) target = s.length()-1 while i >= 0: if s[i] == ' ': s[target-2] = '%' s[target-1] = '2' s[target-0] = '0' target -= 2 else: s[target] = s[i] i-- target-- countspaces(s): spaces = 0 // verify total spaces count for c in s: if c == ' ': spaces++ if spaces % 3 != 0: throw spaces /= 3 // verify if spaces are within actual length actuallength = s.length() -(spaces *2) for i = 0, i < actuallength, i++: scount++ if scount != spaces: throw return spaces
No comments:
Post a Comment