@Saurabh: u can improve upon ur solution. char * outstr; int c =0; void getreversedwords(string str) { index = str.length()-1; //outstr is the answer stack st; while(index) { st.push(str[index]); if(st.top() == ' ') //top is a space st.printstack(); index--; } if(st.isEmpty()==false) st.printstack(); }
void printstack() { int set =1; char ch; if(st.top()==' ') { ch = st.pop(); set =0; } while(st.isEmpty()==false) outstr[c++] = st.pop(); if(!set) outstr[c++] = ch; } On Jul 5, 4:10 pm, saurabh singh <saurab...@gmail.com> wrote: > well for question 6 I think calculating size of string will count as one > traversal? > Correct me if I am wrong? > My approach: > traverse storing each char in a string.when space encountered push the > string in stack.... > I am not sure how my solution is but it doesnt appears gud ryt now. > > > > > > On Tue, Jul 5, 2011 4:34 PM, Dumanshu <duman...@gmail.com> wrote: > > ans1. use counting sort for character array (0 to 255) then check for > > the second string if same or not. > > > ans2. send 1 and 2, 1 comes back, send 10 and 5, 2 comes back, send 2 > > and 1 > > > ans3. As vikas said, sum of digits should b 8. In that case the number > > must have a zero digit because 1st digit the no. of zeroes can't be > > zero then. right? print all the combinations. need help on this. > > > ans4. a function with string, first index, last index as arguments and > > return true or false. increment first index and decrement last index > > for recursive call. > > > ans5. I have no idea. may b we can take help of shunting algorithm. > > but there ought to be an easier way to do this. Do we have to WAP a > > general one for these expressions??? > > > ans6. allocate same number of bytes for the reversed string. now > > traverse the original string from the back. > > as soon as u encounter a space say at position x or you come to 0 > > index, call the current = function (x+1,current) or current = > > function(0,current). > > this function copies the original string from position x+1 to > > (while(space or null)) in reversed string at position current and > > returns current + no. of characters copied. > > > ans8. somebody plz explain this. do we have to find the values for > > a,b,c,d,e,f so that we can get return change for 100,50,25,10,5? > > 10, 5,5,20,25,50... how to get change for 5 then? > > > ans9. lets say we have to allocate 100*200 i.e. rows 100 and columns > > 200 > > int **a = (int **)malloc(sizeof(int *)*100); > > a[0] = (int *)malloc(sizeof(int)*100*200); > > for(i=1;i<100;i++) > > a[i] = (a[i-1]+200); > > > ans10. use hashtables, first traversal get true for all values > > present. then second traversal, check if (X- arr[i]) is present in > > hashtable, if yes print. > > > ans11. i think ans to this one is 1 byte. because some information is > > stored.. may be. m nt sure :P > > > ans12. typedef struct node * NODE; > > > NODE sortlist(NODE head,int n) > > { > > if(n==1) return head; > > if(!n) return null; > > NODE temp =head; > > for(int i=0;i<n\2;i++)temp=temp->next; > > return merge(sortlist(head,n/2),sortlist(temp,n/2 + (n%2));); > > } > > > NODE merge(NODE t1,NODE t2) > > { > > NODE head=NULL,temp=NULL; > > int set =0; > > > while(t1 && t2) > > { > > if(t1->data < t2->data) > > { > > if(!set){head=t1;temp = head;set=1;t1=t1->next;} > > else > > { > > temp->next = t1; > > t1=t1->next; > > } > > } > > else > > { > > if(!set){head=t2;temp = head;set=1;t2=t2->next;} > > else > > { > > temp->next = t2; > > t2=t2->next; > > } > > } > > > while(t1) > > { > > temp->next = t1; > > t1 = t1->next; > > } > > while(t2) > > { > > temp->next = t2; > > t2 = t2->next; > > } > > temp->next = NULL; > > > return head; > > } > > > did i miss any case? > > > On Jul 5, 11:24 am, vikas <mehta...@gmail.com> wrote: > > > These all were asked cumulatively in five interviews, one after another. > > > > Q1 given 2 string A ,B. write a code to find all character of A exists in > > B > > > or not? > > > > Q2. A puzzle athttp://mathforum.org/library/drmath/view/56756.html > > > > Q3. Find a 8-digit number, where the first figure defines the count of > > zeros > > > in this number, the second figure the count of numeral 1 in this number > > and > > > so on.... > > > > Q4. write a recursive function to find a given string is palindrome or > > not? > > > > Q5. write a code to generate the parse tree like compilers do > > internally > > > for any given expression > > > e.g. a+(b+c*(e/f)+d)*g > > > > Q6. 3 reverse the string word by word e.g. "My name is pradeep" .. o/p > > shd > > > be "pradeep is name > > > My" ...intwer expecting a 1 traversal algo > > > > Q7. C++ (What are virtual functions) what happened if I do > > > Base *d = new Derived(); and Derived *d = new Base(); > > > is it error(in which statement) or not if yes what type of error? > > > > Q8. you have 6 coins of Indian denomination (a+b+c+d+e+f=115 paisa) > > ...if > > > user ask for a > > > change of 100,50,25,10,5 paisa then you r not able to give find the value > > of > > > a,b,c,d,e,f.........e.g. > > > lets if user ask for a change of 25 paisa then you r not able to return > > > (10+10+5) or (20+5) > > > > Q9. allocate 2D array dynamically with min no. of malloc calls. > > > > Q10. given unsorted array and a no. X ,find 2 no. whose sum is > > > X....a[i]+a[j]=X ...........do it in O(n) > > > > Q11. class A {}; A obj ; what is sizeof(obj)....explain ANS > > > > Q12. Write a code of Merge sort on Linked list. > > > > Lets discuss them................ > > > -- > > You received this message because you are subscribed to the Google Groups > > "Algorithm Geeks" group. > > To post to this group, send email to algogeeks@googlegroups.com. > > To unsubscribe from this group, send email to > > algogeeks+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/algogeeks?hl=en. > > -- > Saurabh Singh > B.Tech (Computer Science) > MNNIT ALLAHABAD- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.