正则表达式的类型是PCRE。
编写一个程序,输出有效的PCRE,使其与m和n之间的所有自然数相匹配,而不匹配任何其他内容。不允许前导零。
例如,让m和n是123和4321,那么程序就可以输出1(2[3-9]|[3-9]\d)|[2-9]\d\d|[123]\d\d\d|4([012]\d\d|3([01]\d|2[01]))。
这与字符串完全匹配,因此^和$锚点是隐式的。
我们应该努力平衡这两者:
让我们优化一下
code length in characters + 2*regular expression length for input 123456 and 7654321
边注:如果我们能证明最短的PCRE正则表达式的大小是O(log n)或其他什么的话,这是很有趣的。
发布于 2013-03-21 09:14:41
function makere(m,n){r='(';for(i=m;i<n;)r+=i+++'|';return (r+i)+')';}我想您是否喜欢这取决于您如何定义“合理的大小”。
https://codegolf.stackexchange.com/questions/10962
复制相似问题