VMWare Inc Interview Question
Software Engineer / Developersreversing string
here n is length of string
for(i = 0 ; i < n/2 ; i++)
{
str[i] = str[i] - str[n-1-i];
str[n-1-i] = str[n-1-i] + str[i] ;
str[i] = str[n-1-i] - str[i];
}
Have two pointers a,one to the first character of the string and b one to the last. Swap both and increment a and decrement b. Recursively do this till till both are equal.
You can NOT swap two numbers without using temporary variable,
above method may work for small number, consider two big numbers 65535 and 65534
your sum a=a+b overflows
i think even XOR wont work if u take negetive numbers
String reverseMe = "reverse me!";
for (int i = 0; i < reverseMe.length(); i++) {
reverseMe = reverseMe.substring(1, reverseMe.length() - i)
+ reverseMe.substring(0, 1)
+ reverseMe.substring(reverseMe.length() - i, reverseMe.length());
}
System.out.println(reverseMe);
source - stackoverflow stivlo
what will be space complexity of this function:
String reverseMe = "reverse me!";
for (int i = 0; i < reverseMe.length(); i++) {
reverseMe = reverseMe.substring(1, reverseMe.length() - i)
+ reverseMe.substring(0, 1)
+ reverseMe.substring(reverseMe.length() - i, reverseMe.length());
}
System.out.println(reverseMe);
will it be O(n^2)? orO(n^3)
for swapping variable
- brijesh kumar jaiswal April 11, 2007num1 = num1 ^ num2 ;
num2 = num1 ^ num2 ;
num1 = num1 ^ num2 ;