Boolean (^isValid)(NSString *string) = ^Boolean(NSString *string) {
NSMutableArray *stack = [NSMutableArray new];
NSDictionary *dic = @{@"(":@")",@"[":@"]",@"{":@"}"};
for (int i = 0; i < string.length; i++) {
NSString *tmp = [string substringWithRange:NSMakeRange(i, 1)];
if (dic[tmp]) {
[stack addObject:tmp];
continue;
}
for (NSString *key in dic.allKeys) {
NSString *value = dic[key];
if ([value isEqualToString:tmp]) {
if (![stack.lastObject isEqualToString:key]) {
return false;
}
[stack removeLastObject];
break;
}
}
}
return ![stack count];
};
- true: isValid(@"{[]}");
- true: isValid(@"{[([{({})}])]}");
- false: isValid(@"{]}");
- true: isValid(@"{(dad)[3223]}");
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。