Use bit array rather using array of size 26

On 9/15/07, Deva R <[EMAIL PROTECTED]> wrote:
>
>
>
> a linear solution.
>
> - initialize an array of 26 (count for each character) with zeros.
> - scan pattern array and toggle equivalent alphabet's occurance field
> - scan subject string and skip occured alphabets
>
> sample program:
>
>
> alphabets_occurance[26]={0,0,0,...}
>
> void fun(char *subject,char *pattern)
> {
>
>     //toggle dirty alphabets occured in pattern string
>    for(int i =0;subject[i] !='\0';i++)
>    {
>      alphabets_occurance[subject[i] - 'a'] = 1;
>    }
>
>    //have two indexs to traverse the subject array and skip dirty
> alphabets
>    int curr_count=0,forward_count=0;
>    for(int i =0;pattern[i]!='\0';i++)
>    {
>      if(alphabets_occurance[pattern[forward_count] - 'a'] !=1)
>      {
>         //not a dirty alphabet - include in output
>         pattern[curr_count]=pattern[forward_count];
>         curr_count++;
>      }
>      forward_count++;
>    }
>   //terminate output string
>   pattern[curr_count]='\0';
> }
>
>
> costs time at  o(strlen(pattern)+strlen(subject)) and mem 26 bytes..
>
>
>
> On 8/12/07, Peeyush Bishnoi <[EMAIL PROTECTED]> wrote:
> >
> > One solution to this problem is that :
> >
> > char s[]="abracadbra";
> > char p[]="bca";
> > char temp[];
> >
> > 1. First Remove element b of array p from array s .
> >       Compare b of array p with with characters of array s .
> >           if b is not matched with characters of array s
> >              insert those characters of s into new temp array .
> >          continue this till s reaches '\0';
> >        now again reassign the reduced characters of temp array back into
> > array s;
> >
> > continuously repeat the step 1 for another characters in p till p become
> > or reaches '\0' ;
> >
> > finally you have an array which doesn't have characters which are there
> > in p array;
> >
> >
> > I think it only need an extra temporary array , but at each interation
> > array size is getting reduced & as well no. of time to compare elements is
> > also get reduced .
> >
> > If any one have questions please ask;
> >
> > Thank you ,
> >
> > ---
> > Regards
> > Peeyush Bishnoi
> >
> > On 8/7/07, Arulanandan P < [EMAIL PROTECTED]> wrote:
> > >
> > > You have to write a function whose prototype is given bellow. this
> > > function will accept two char * named subject and pattern. for example
> > > subject="abracadbra"
> > > and pattern="bca".now it should check occurrences of all chars of
> > > string pattern in subject . If any match occurs then it will remove that
> > > char from subject . so finally , as in our example
> > > at end subject ="rdr"
> > >
> > > void fun(char *subject,char *pattern)
> > > {
> > > // write your code here
> > > }
> > >
> > >
> > >
> >
> >
> > --
> > ----
> > Peeyush Bishnoi
> >
> >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to