给定两个字符串pattern和s,第一个字符串pattern
只包含符号0和1,第二个字符串s
只包含小写英语字母。
假设pattern匹配s
的子字符串s[l..r]
,前提是满足以下3个条件:
1.它们具有相等的长度;
1.对于模式中的每个0,子串中的对应字母是元音;
1.对于每个1 in模式,对应的字母是辅音。任务是计算与pattern
匹配的s
的子串的数目。
注:这里我们定义元音为a
,e
,i
,o
,u
和y
,其他字母都是辅音。
我不是在挑战这里的任何人,我已经尝试了不同的方法,但无法实现。这个问题是问在代码信号测试评估最近。
5条答案
按热度按时间wfsdck301#
以下是我解决这个问题的方法。
将所有0替换为
pattern
中的匹配元音的正则表达式,将1替换为pattern
中的非元音(检查输入之后),并将其用作s
上的正则表达式(具有重叠),可以帮助我们满足需求集。使用的
matchOverlap
函数取自this answerjdg4fx2g2#
您可以先检查长度,然后使用正则表达式检查测试中的辅音是否符合模式和计数。
jtjikinw3#
你应该把输入字符串转换成二进制格式。
其结果
cvxl0en24#
这是一个蛮力C#版本
可以被优化
t1qtbnec5#
明白了!再看看这个question
正则表达式库比环更强大