public static void Main(string[] args) {
Console.WriteLine(ReverseByWordsV2("you can write to stdout for debugging purposes"));
public static string ReverseByWordsV2(string input)
var output = new StringBuilder(input.Length);
var wordStartIndex = input.Length - 1;
for(var i = input.Length - 1; i >= 0; i--)
output.Append(input.AsSpan(0, wordStartIndex - i + 1));
return output.ToString();
.Append(input.AsSpan(i + 1, wordStartIndex - i))
return output.ToString();