@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 <[email protected]> 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 <[email protected]>
> wrote:
> > Can we do it using linked list if ONE TIME TRAVERSAL is a constraint??
> >
> > On 7/6/11, Tushar Bindal <[email protected]> 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 <[email protected]
> >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 <[email protected]>
> >>> 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 <
> [email protected]>
> >>> > 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 <
> [email protected]>
> >>> >> 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 [email protected].
> >>> >>> To unsubscribe from this group, send email to
> >>> >>> [email protected].
> >>> >>> 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 : [email protected]
> >>> >> 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 [email protected].
> >>> >> To unsubscribe from this group, send email to
> >>> >> [email protected].
> >>> >> 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 [email protected].
> >>> > To unsubscribe from this group, send email to
> >>> > [email protected].
> >>> > 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 [email protected].
> >>> To unsubscribe from this group, send email to
> >>> [email protected].
> >>> 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 : [email protected]
> >> 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 [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected].
> >> 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 [email protected].
> > To unsubscribe from this group, send email to
> [email protected].
> > 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.