{"ScriptPreparationCode":"var test = \u0022a a sdf s d s d f s df k sd l l sdlk sdlf l l sdf sdlf s dlf sd f f df f f f f\u0022\r\nfunction clean(str) {\r\n\r\nvar cleanedStr = \u0022\u0022;\r\n\r\nfor (var i = 0; i \u003C str.length; i\u002B\u002B) {\r\nlet char = str[i];\r\n let prevChar = str[i - 1];\r\n\r\n if (!(char === \u0022 \u0022 \u0026\u0026 prevChar === \u0022 \u0022)) {\r\n cleanedStr \u002B= char;\r\n }\r\n}\r\nreturn cleanedStr; \r\n}\r\n\r\nfunction collapseSpaces(str) {\r\nreturn str.replace(/\\s\u002B/g, \u0027 \u0027);\r\n};\r\n\r\nfunction collapseSpacesHalden(s) {\r\nlet result = \u0027\u0027;\r\n for (let i = 0; i \u003C s.length; i\u002B\u002B) {\r\n \tconst c = s.charAt(i);\r\n result \u002B= c;\r\n \tif (c === \u0027 \u0027) {\r\n \twhile (i \u003C s.length - 1 \u0026\u0026 s.charAt(i \u002B 1) === \u0027 \u0027) {\r\n \ti\u002B\u002B;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nfunction collapseSpacesDonnie(str) {\r\nvar out = \u0022\u0022\r\nstr.split(\u0022 \u0022).forEach((c) =\u003E {\r\nif (!!c) {\r\nout \u002B= c \u002B \u0022 \u0022\r\n}\r\n})\r\nreturn out.trim()\r\n}","TestCases":[{"Name":"kaushal","Code":"clean(test)","IsDeferred":false},{"Name":"jon / andrew ","Code":"collapseSpaces(test)","IsDeferred":false},{"Name":"halden","Code":"collapseSpacesHalden(test)","IsDeferred":false},{"Name":"donnie","Code":"collapseSpacesDonnie(test)","IsDeferred":false}]}