Microsoft Interview Question
char *rotatestring2(char * input, int diff)
{
char temp;
char oldvalue;
int index;
int len;
int newpos=0;
int oldpos=0;
len=strlen(input);
oldvalue=input[0];
for(index=0;index<len;index++)
{
newpos=oldpos+diff;
temp=input[newpos%len];
input[newpos%len]=oldvalue;
oldpos=newpos;
oldvalue=temp;
}
return input;
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Stringrotation
{
class Stringrotation
{
static void Main()
{
string str;
Console.WriteLine("Enter the string to rotate ");
str = Console.ReadLine();
Console.WriteLine("Enter the number of rotations ");
int rot = Convert.ToInt32(Console.ReadLine());
int strlen = str.Length;
string outputstr = string.Empty;
outputstr += str.Substring(strlen - rot , rot);
outputstr += str.Substring(0, strlen - rot);
Console.WriteLine("The rotated string is {0} ", outputstr);
Console.Read();
}
}
}
public static void rotationOfString(String s, int n) {
if(s.length()<1)
{
return;
}
char[] characters = s.toCharArray();
char characterToPlace = characters[0];
for (int i = 1; i < characters.length; i++) {
char tempCurr = characters[i];
characters[i] = characterToPlace;
characterToPlace = tempCurr;
}
characters[0] = characterToPlace;
System.out.println("str :"+s+" rot :"+new String(characters));
}
public class HelperFunctions {
public static String rotateString(String s, int n) {
StringBuffer result = new StringBuffer();
//Rotate right
if(n>0) {
int rotatedChars = s.length()-n;
result.append(s.substring(rotatedChars, s.length())
+ s.substring(0, rotatedChars));
} else if(n<0) { //Rotate left
//Get positive value for shifting bits
int m = n*-1;
result.append(s.substring(m, s.length())
+ s.substring(0, m));
} else { //For n = 0 case, original string is ouput
result.append(s);
}
return result.toString();
}
public static void main(String[] args) {
System.out.println("\nrotateString(\"Pineapple\" , 1) : "+rotateString("Pineapple" , 1) );
System.out.println("rotateString(\"Pineapple\" , 2) : "+rotateString("Pineapple" , 2) );
System.out.println("rotateString(\"Pineapple\" , -1) : "+rotateString("Pineapple" , -1) );
}
}
public static String rotateString(String s, int n) {
StringBuffer result = new StringBuffer();
//Rotate right
if(n>0) {
int rotatedChars = s.length()-n;
result.append(s.substring(rotatedChars, s.length())
+ s.substring(0, rotatedChars));
} else if(n<0) { //Rotate left
//Get positive value for shifting bits
int m = n*-1;
result.append(s.substring(m, s.length())
+ s.substring(0, m));
} else { //For n = 0 case, original string is ouput
result.append(s);
}
return result.toString();
}
Rotatstring(char *str, int k)
- vijay September 12, 2007{
Reverse(str[0], str[k-1]);
Reverse(str[k], str[n]);
Reverse(str[0], str[n]);
}
where n is lenth of string.