所以我最近有一个面试问题,要求我确定字符串是否平衡。在这两个条件下,字符串是平衡的:
所以给出了例子" cccddbba
"这些条件适用。 c (3)
+ a (1)
次出现even (1+3=4)
的出现次数为d (2)
,b (2)
次even (2+2=4)
次出现的次数为^([ac])*?[db]*?([ac])*?$
。字符串只能包含字符' a'' b'' c'和' d'正则表达式应该适用于任何字符串,而不仅仅是这个例子。
我的任务只是为此编写正则表达式。我假设他们在后台计算了' a'的匹配数量。和' c'发现使用我的正则表达式并总结。同样适用于' b'和' d'。
我暂时没有触及正则表达式,所以我做得很糟糕,只有SELECT RecID, Name
, CASE
WHEN LEFT(Name, 1) Like '[A-C]' THEN
'Cat1'
WHEN LEFT(Name, 1) Like '[D-E]' THEN
'Cat2'
WHEN LEFT(Name, 1) Like '[F-G]' THEN
'Cat3'
ELSE
'Cat999'
END AS Category
,这显然是不正确的。
答案 0 :(得分:2)
为每个断言使用单独的预测:
with tf.Graph().as_default():
# Define G and V the same way. No initialization or run here.
saver.restore(sess, '/B/somefolder/somefile')
请参阅live demo。
这主要是因为^(?=(([^ac]*[ac]){2})*[^ac]*$)(?=(([^bd]*[bd]){2})*[^bd]*$).*$
匹配([^ac]*[ac]){2})
对。其余的相对简单。
答案 1 :(得分:0)
使用正向前瞻,您可以检查a和c是否出现偶数次,并且同样适用于b和d:
^(?=[^ac]*([ac][^ac]*[ac][^ac]*)*$)(?=[^bd]*([bd][^bd]*[bd][^bd]*)*$).*$
两个前瞻组中的每一个都检查整个字符串是否包含偶数个字符。请注意,每个前瞻都锚定在末尾($
),以强制它扫描直到字符串的结尾。