伪正则表达式
发布于 2022-03-03 16:48:00
判断一个数字串是否匹配一个表达式,具体如下:
1)表达式m:一定不为空,只能由数字和“*”构成,其中的“*”表示匹配一个或多个“它前面所有非”*“的数字的和值除以10的余数”;“*”如果在最前面或其前面都是“*”,则只可以是任意一个数字。
2)数字串s:可能为空,只能由数字构成,不能包含其它字符。
3)是否匹配:匹配要求覆盖整个数字串s,而不是某一部分匹配。
解题要求:不能将m转写成标准正则表达式来解题,需要自己编程实现匹配算法。
注意,对应objc语言,系统里的@autoreleasepool {} 需要改写成如下形式
输入描述:
见输入样例,其中最后一行的0表示结束输入输入样例:
3
1*
11111
**1
121
**1
1221
0 输出描述:
YES:匹配
NO:不匹配输出样例 YES YES NO
1)表达式m:一定不为空,只能由数字和“*”构成,其中的“*”表示匹配一个或多个“它前面所有非”*“的数字的和值除以10的余数”;“*”如果在最前面或其前面都是“*”,则只可以是任意一个数字。
2)数字串s:可能为空,只能由数字构成,不能包含其它字符。
3)是否匹配:匹配要求覆盖整个数字串s,而不是某一部分匹配。
解题要求:不能将m转写成标准正则表达式来解题,需要自己编程实现匹配算法。
注意,对应objc语言,系统里的@autoreleasepool {} 需要改写成如下形式
#import <Foundation/Foundation.h> //strcmp //NSString: //- (NSArray<NSString *> *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator //- (unichar)characterAtIndex:(NSUInteger)index //- (NSString *)substringWithRange:(NSRange)range int main(int argc, const char * argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init] //... //add your code //... [pool drain] return 0 }
NO:不匹配输出样例 YES YES NO
关注者
0
被浏览
53
1 个回答