Capgemini Interview Question
Senior Software Development EngineersCountry: India
Interview Type: Phone Interview
#include<iostream>
#include<vector>
#include<string>
using namespace std;
string func(string s){
vector<char> v;
string s2="";
for(int i=0;i<s.size();i++){
if(s[i]==' ' || i==s.size()-1){
if(i==s.size()-1) v.push_back(s[i]);
while(v.size()){
s2=s2+v[v.size()-1];
v.pop_back();
}
s2=s2+' ';
}
else
v.push_back(s[i]);
}
return s2;
}
int main(){
string s = "We will rock you !";
cout<<func(s)<<endl;
return 0;
}
1 #!/usr/bin/python
2
3 import sys
4 import time
5
6
7
8 def rev_string(input_data):
9 # Create an empty List Obj for later use
10 final_list = []
11 # Transform and fill a local Obj with the input data
12 my_list = list(input_data)
13 # Getting the range(Len of the list -1, End, Step_Val)
14 range_data = range(len(my_list) - 1, -1, -1)
15 # Start a for loop to step the range data
16 for data_step in range_data:
17 # Fill the list Obj we created at the start
18 final_list.append(my_list[data_step])
19 # once we have appended the data, we then join it back and return
20 final_list = ''.join(final_list)
21 return final_list
22
23
24 def main():
25 # input data
26 data = "This is a string!"
27 # Show the user data before
28 print "Data Before: %s" % data
29 # call the rev function to flip the data
30 data = rev_string(data)
31 # Show the user data after
32 print "Data After: %s" % data
33
34 if __name__ == "__main__":
35 sys.exit(main())
Example output -- >
Data Before: This is a string!
Data After: !gnirts a si sihT
// c or c++ version
// no error checking is done
void revString(char *str, int start, int end)
{
char temp;
while (start < end) {
temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
// Assumption - one space between words
void revSentence( char *sen)
{
int len = strlen(sen);
if (len == 0 || len == 1) return;
// reverse string
revString(sen, 0, len-1);
int start =0;
for (int i=0; i<len; i++) {
// if it is space, reverse the word
if (sen[i] == ' ') {
revString(sen, start, i-1);
start = i+1;
}
}
// reverse last word
revString(sen, start, len-1);
}
- Raj March 11, 2016