def compress(s: str) -> str:
	"""
	Compress `s` by dropping spaces before ' ,.' characters and
	ensuring there is exactly one space before question mark
	"""
	dest = ""
	for a, b in zip(s, s[1:]):
		if a == ' ' and b in " ,.":
			pass # do not append to dest
		elif a != ' ' and b == '?':
			dest += a + ' '
		else:
			dest += a
	return dest + s[-1]