Off Topic: Sorry for the diversion, but I was just wondering how easy it has become to code in languages other than c. Here is the code i wrote for the above mentioned problem in Python. It takes command line arg as string. something like
vishal@ubuntu:~/progs/python\ 02:45:07 PM >$ cat rev.py #!/usr/bin/python import sys strn="" for i in (sys.argv[1].split())[::-1]: strn+=i+" " print strn vishal@ubuntu:~/progs/python\ 02:45:09 PM >$ ./rev.py "This is a new world" world new a is This vishal@ubuntu:~/progs/python\ 02:47:15 PM >$ On Thu, Jul 7, 2011 at 1:19 PM, Piyush Sinha <ecstasy.piy...@gmail.com> wrote: > @Navneet....take a look at the solution below and tell if there is any bug > in it... > > #include <string.h> > > typedef struct revll > { > char s[100]; > struct revll *next; > }revll; > > revll *rev_str(char *a) > { > char temp[100]; > int i,len=strlen(a),j=0; > revll *head,*p; > head=NULL; > for(i=0;i<len;i++) > { > if(a[i]!=' ') > { > temp[j++] = a[i]; > } > else > { > temp[j] = '\0'; > p = (revll *)malloc(sizeof(revll)); > p->next = head; > strcpy(p->s,temp); > head = p; > j=0; > } > } > /*for last word*/ > temp[j] = '\0'; > p = (revll *)malloc(sizeof(revll)); > p->next = head; > strcpy(p->s,temp); > head = p; > return head; > } > > main() > { > char a[100]; > revll *head; > gets(a); > head = rev_str(a); > while(head) > { > printf("%s->",head->s); > head=head->next; > } > system("pause"); > } > > > > On Thu, Jul 7, 2011 at 9:10 AM, Navneet Gupta <navneetn...@gmail.com> wrote: >> >> @Piyush, could you elaborate your approach with Linked List? >> From what i am getting, even with Linked List, you would need two >> traversals at least. >> >> On Thu, Jul 7, 2011 at 2:07 AM, Piyush Sinha <ecstasy.piy...@gmail.com> >> wrote: >> > Can we do it using linked list if ONE TIME TRAVERSAL is a constraint?? >> > >> > On 7/6/11, Tushar Bindal <tushicom...@gmail.com> wrote: >> >> I read that solution. >> >> But the same doubt as Navneet which I think you also raised i one of >> >> your >> >> posts on that thread >> >> >> >> On Wed, Jul 6, 2011 at 10:34 PM, Navneet Gupta >> >> <navneetn...@gmail.com>wrote: >> >> >> >>> Saurabh, >> >>> >> >>> I understood your solution but wonder if it is purely single traversal >> >>> >> >>> In affect, you have a second traversal when you are popping the >> >>> strings from stack to form the reverse order string. >> >>> >> >>> Though the second activity is less than O(n) i.e. O(#words in string) >> >>> Nice solution, this way we can also get rid of extra spaces easily in >> >>> the actual string if that is also to be done. >> >>> >> >>> On Wed, Jul 6, 2011 at 10:16 PM, saurabh singh <saurab...@gmail.com> >> >>> wrote: >> >>> > I have proposed my solution in one of the previous posts.Check the >> >>> solution >> >>> > there >> >>> > >> >>> > On Wed, Jul 6, 2011 at 10:10 PM, Tushar Bindal >> >>> > <tushicom...@gmail.com> >> >>> > wrote: >> >>> >> >> >>> >> good job >> >>> >> but how can this be done in one traversal as asked on the Adobe >> >>> Interview >> >>> >> Questions thread. >> >>> >> >> >>> >> >> >>> >> >> >>> >> On Wed, Jul 6, 2011 at 9:49 PM, Navneet Gupta >> >>> >> <navneetn...@gmail.com> >> >>> >> wrote: >> >>> >>> >> >>> >>> I think somebody on this thread has asked this question but i am >> >>> >>> not >> >>> >>> able to find that. >> >>> >>> >> >>> >>> Question was if a string is like "my name is ram", then output >> >>> >>> should >> >>> >>> be "ram is name my". >> >>> >>> >> >>> >>> Wrote the code for same, so sharing. >> >>> >>> >> >>> >>> #include<iostream> >> >>> >>> #include<string> >> >>> >>> using namespace std; >> >>> >>> >> >>> >>> void SwapStringChars(string &str, int pos1, int pos2) >> >>> >>> { >> >>> >>> char ch = str[pos1]; >> >>> >>> str[pos1] = str[pos2]; >> >>> >>> str[pos2] = ch; >> >>> >>> } >> >>> >>> >> >>> >>> void reverseString(string &str, int left, int right) >> >>> >>> { >> >>> >>> for(int i = left ; i <= left + (right-left)/2 ; i++) >> >>> >>> SwapStringChars(str, i, right + left -i)); >> >>> >>> } >> >>> >>> >> >>> >>> void reverseWordsInString(string &str) >> >>> >>> { >> >>> >>> char space = ' '; >> >>> >>> int len = str.length(); >> >>> >>> int startIndex = 0, endIndex = 0; >> >>> >>> while(endIndex < len - 1) >> >>> >>> { >> >>> >>> while(str[endIndex] != space && endIndex < >> >>> len)endIndex++; >> >>> >>> reverseString(str, startIndex, endIndex-1); >> >>> >>> startIndex = endIndex; >> >>> >>> while(str[startIndex] == space)startIndex++; >> >>> >>> endIndex = startIndex; >> >>> >>> } >> >>> >>> } >> >>> >>> >> >>> >>> int main() >> >>> >>> { >> >>> >>> string str; >> >>> >>> cout<<"\nEnter enter the string :"; >> >>> >>> getline(cin,str); >> >>> >>> >> >>> >>> //Reverse whole string at once >> >>> >>> reverseString(str, 0, str.length() - 1); >> >>> >>> >> >>> >>> //Reverse Individual words in string >> >>> >>> reverseWordsInString(str); >> >>> >>> cout<<str; >> >>> >>> cin.get(); >> >>> >>> return 0; >> >>> >>> } >> >>> >>> >> >>> >>> -- >> >>> >>> Regards, >> >>> >>> Navneet >> >>> >>> >> >>> >>> -- >> >>> >>> 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. >> >>> >>> >> >>> >> >> >>> >> >> >>> >> >> >>> >> -- >> >>> >> Tushar Bindal >> >>> >> Computer Engineering >> >>> >> Delhi College of Engineering >> >>> >> Mob: +919818442705 >> >>> >> E-Mail : tushicom...@gmail.com >> >>> >> Website: www.jugadengg.com >> >>> >> >> >>> >> -- >> >>> >> 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 >> >>> > >> >>> > >> >>> > -- >> >>> > 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. >> >>> > >> >>> >> >>> >> >>> >> >>> -- >> >>> Regards, >> >>> Navneet >> >>> >> >>> -- >> >>> 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. >> >>> >> >>> >> >> >> >> >> >> -- >> >> Tushar Bindal >> >> Computer Engineering >> >> Delhi College of Engineering >> >> Mob: +919818442705 >> >> E-Mail : tushicom...@gmail.com >> >> Website: www.jugadengg.com >> >> >> >> -- >> >> 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. >> >> >> >> >> > >> > >> > -- >> > *Piyush Sinha* >> > *IIIT, Allahabad* >> > *+91-8792136657* >> > *+91-7483122727* >> > *https://www.facebook.com/profile.php?id=100000655377926 * >> > >> > -- >> > 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. >> > >> > >> >> >> >> -- >> Regards, >> Navneet >> >> -- >> 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. >> > > > > -- > Piyush Sinha > IIIT, Allahabad > +91-8792136657 > +91-7483122727 > https://www.facebook.com/profile.php?id=100000655377926 > > -- > 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. > -- 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.