function ReverseStringWithoutTemporaryVariable(str: string) {
let start: number = 0, end: number = str.length - 1;
let array:string[] = str.split("");
while (start < end) {
// XOR used to swap two variables
array[start] = String.fromCharCode(array[start].charCodeAt(0) ^ array[end].charCodeAt(0));
array[end] = String.fromCharCode(array[end].charCodeAt(0) ^ array[start].charCodeAt(0));
array[start] = String.fromCharCode(array[start].charCodeAt(0) ^ array[end].charCodeAt(0));
start++;
end--;
}
return array.join("");
}
let str: string = "typescript c++ c";
str = ReverseStringWithoutTemporaryVariable(str);
console.log(str);
/*
run:
"c ++c tpircsepyt"
*/