#import <objc/objc.h>
#import <objc/Object.h>
#import <Foundation/Foundation.h>
@implementation TestObj
NSUInteger checkPassword(NSString * haystack) {
NSArray * arr = [NSArray arrayWithObjects: @"(?s).*\\d.*", @"(?s).*[a-z].*", @"(?s).*[A-Z].*", @"(?s).*[-+_!@#$%^&*.,?].*",nil];
NSUInteger cnt = 0;
for (NSUInteger index = 0; index < [arr count]; ++index) {
NSPredicate * passTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", [arr objectAtIndex:index]];
if ([passTest evaluateWithObject:haystack]) {
cnt = cnt + 1;
}
}
if (cnt > 1 && [haystack length] > 5 && [haystack length] < 13)
{
NSLog(@"YES!");
return 1;
}
else
{
NSLog(@"No!");
return 0;
}
}
int main()
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * s = @"123DF4ffg";
NSLog(@"Result: %d", checkPassword(s));
return 0;
}
@end
I2ltcG9ydCA8b2JqYy9vYmpjLmg+CiNpbXBvcnQgPG9iamMvT2JqZWN0Lmg+CiNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgoKQGltcGxlbWVudGF0aW9uIFRlc3RPYmoKCgoKTlNVSW50ZWdlciBjaGVja1Bhc3N3b3JkKE5TU3RyaW5nICogaGF5c3RhY2spIHsKICAgIE5TQXJyYXkgKiBhcnIgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOiBAIig/cykuKlxcZC4qIiwgQCIoP3MpLipbYS16XS4qIiwgQCIoP3MpLipbQS1aXS4qIiwgQCIoP3MpLipbLStfIUAjJCVeJiouLD9dLioiLG5pbF07CiAgICBOU1VJbnRlZ2VyIGNudCA9IDA7CiAgICBmb3IgKE5TVUludGVnZXIgaW5kZXggPSAwOyBpbmRleCA8IFthcnIgY291bnRdOyArK2luZGV4KSB7CiAgICAgICAgTlNQcmVkaWNhdGUgKiBwYXNzVGVzdCA9IFtOU1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAiU0VMRiBNQVRDSEVTICVAIiwgW2FyciBvYmplY3RBdEluZGV4OmluZGV4XV07CiAgICAJaWYgKFtwYXNzVGVzdCBldmFsdWF0ZVdpdGhPYmplY3Q6aGF5c3RhY2tdKSB7CiAgICAgIAkJY250ID0gY250ICsgMTsKICAgIAl9CiAgICB9CiAgICBpZiAoY250ID4gMSAmJiBbaGF5c3RhY2sgbGVuZ3RoXSA+IDUgJiYgW2hheXN0YWNrIGxlbmd0aF0gPCAxMykKICAgIHsKICAgIAlOU0xvZyhAIllFUyEiKTsKICAgIAlyZXR1cm4gMTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgIAlOU0xvZyhAIk5vISIpOwogICAgCXJldHVybiAwOwogICAgfQp9CgppbnQgbWFpbigpCnsKCU5TQXV0b3JlbGVhc2VQb29sICogcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOwogICAgTlNTdHJpbmcgKiBzID0gQCIxMjNERjRmZmciOwogICAgTlNMb2coQCJSZXN1bHQ6ICVkIiwgY2hlY2tQYXNzd29yZChzKSk7CglyZXR1cm4gMDsKfQpAZW5k