/*
* File: isPasswordValid.c
* Author: srkrishnan
*
* Created on June 29, 2011, 11:41 PM
*/
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
int isPassowrdValid(char *pass)
{
int alpha=0,num=0,p=0,valid=0;
char *str=pass;
while(*str)
{
if(*str>='a' && *str<='z')
alpha++;
if(*str>='0' && *str<='9')
num++;
p++;
str++;
}
if(alpha!=0 && num!=0 && alpha+num==p && p>=5 && p<=12)
valid=1;
else
valid=0;
str=pass;
char *t=NULL,*b=NULL,*c=NULL;
while(*str)
{
t=str+1;
while(*t)
{
if(*t==*str)
{
b=t;
c=str;
while(*t && *c)
{
if(c==b)
break;
if(*c!=*t)
break;
c++;
t++;
}
if(c==b)
{
valid=0;
break;
}
}
t++;
}
str++;
}
return valid;
}
int main(int argc, char** argv) {
printf("%d",isPassowrdValid
("cb124")); return (EXIT_SUCCESS);
}
LyogCiAqIEZpbGU6ICAgaXNQYXNzd29yZFZhbGlkLmMKICogQXV0aG9yOiBzcmtyaXNobmFuCiAqCiAqIENyZWF0ZWQgb24gSnVuZSAyOSwgMjAxMSwgMTE6NDEgUE0KICovCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKLyoKICogCiAqLwoKaW50IGlzUGFzc293cmRWYWxpZChjaGFyICpwYXNzKQp7CiAgICBpbnQgYWxwaGE9MCxudW09MCxwPTAsdmFsaWQ9MDsKICAgIGNoYXIgKnN0cj1wYXNzOwogICAgd2hpbGUoKnN0cikKICAgIHsKICAgICAgICBpZigqc3RyPj0nYScgJiYgKnN0cjw9J3onKQogICAgICAgICAgICBhbHBoYSsrOwogICAgICAgIGlmKCpzdHI+PScwJyAmJiAqc3RyPD0nOScpCiAgICAgICAgICAgIG51bSsrOwogICAgICAgIHArKzsKICAgICAgICBzdHIrKzsKICAgIH0KICAgIGlmKGFscGhhIT0wICYmIG51bSE9MCAmJiBhbHBoYStudW09PXAgJiYgcD49NSAmJiBwPD0xMikKICAgICAgICB2YWxpZD0xOwogICAgZWxzZQogICAgICAgIHZhbGlkPTA7CiAgICAKICAgIHN0cj1wYXNzOwogICAgY2hhciAqdD1OVUxMLCpiPU5VTEwsKmM9TlVMTDsKICAgIHdoaWxlKCpzdHIpCiAgICB7CiAgICAgICAgdD1zdHIrMTsKICAgICAgICB3aGlsZSgqdCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKCp0PT0qc3RyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiPXQ7CiAgICAgICAgICAgICAgICBjPXN0cjsKICAgICAgICAgICAgICAgIHdoaWxlKCp0ICYmICpjKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmKGM9PWIpCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGlmKCpjIT0qdCkKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKys7CiAgICAgICAgICAgICAgICAgICAgdCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoYz09YikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YWxpZD0wOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHQrKzsKICAgICAgICB9CiAgICAgICAgc3RyKys7CiAgICB9CiAgICByZXR1cm4gdmFsaWQ7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewoKICAgIHByaW50ZigiJWQiLGlzUGFzc293cmRWYWxpZCgiY2IxMjQiKSk7CiAgICByZXR1cm4gKEVYSVRfU1VDQ0VTUyk7Cn0K