e@Dave : just checked....it will fails for input .... 11110000
small modification will make it work.
On 7 Apr 2012 21:13, "Dave" <[email protected]> wrote:
> @Atul007: A shorter and logically simpler version of this:
>
> bool IsOnesZerosOnes(unsigned int n)
> {
> while( n & 1 ) n >>= 1;
> if( !n ) return 0;
> while( !(n & 1 ) ) n >>= 1;
> while( n & 1 ) n >>= 1;
> return !n;
> }
>
> The first while loop strips off the trailing ones.
> If the result is nonzero, the second while strips off the zeros, and the
> third while strips off the next set of ones.
> If the result is zero, the n matches the pattern; otherwise, n fails to
> match it.
>
> Dave
>
> On Tuesday, April 3, 2012 11:57:16 PM UTC-5, atul007 wrote:
>
>> This can be done simply by checking and unchecking flag , below code will
>> work :-
>>
>> void checkPattern(int n)
>> {
>> int cnt=0,flag=1;
>> if(n&1)
>> {
>> while(n)
>> {
>> if(n&1 && flag==1)
>> {
>> cnt++;
>> flag=0;
>> }
>> else if(!(n&1) && flag==0)
>> {
>> cnt++;
>> flag=1;
>> }
>> if(cnt > 3)
>> {
>> break;
>> }
>> n=n>>1;
>> }
>> }
>> if(cnt==3)
>> printf("\npattern found\n");
>> else
>> printf("\nPattern not found\n");
>> }
>>
>>
>>
>>
>> On Wed, Apr 4, 2012 at 5:30 AM, Ashish Goel <[email protected]> wrote:
>>
>>> verify that the bits of a number are in format 1s followed by 0s
>>> followed by 1s like 1110001 is valid but 100100100 is not
>>>
>>> Best Regards
>>> Ashish Goel
>>> "Think positive and find fuel in failure"
>>> +919985813081
>>> +919966006652
>>>
>>> --
>>> 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 algogeeks+unsubscribe@**
>>> googlegroups.com <algogeeks%[email protected]>.
>>> For more options, visit this group at http://groups.google.com/**
>>> group/algogeeks?hl=en <http://groups.google.com/group/algogeeks?hl=en>.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/algogeeks/-/eJ4jTQHMOaYJ.
> 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.
>
--
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.