|
|
1
2
这个循环很简单,我不确定你能做得更好。您可能能够在if语句中对表达式的顺序进行微优化。例如,由于&的短路,以这种方式订购if语句可能会更快
假设匹配字符比匹配通配符更常见。当然,这只是一个理论,我不相信没有基准测试它会有什么不同。 正如其他人指出的那样,如果掩码和字符串的长度不相同,那么例程就会失败。 |
|
|
2
3
如果mask.length小于word.length,此函数将在mask末尾停止比较。在开始时进行单词/遮罩长度比较可以避免这种情况,而且可以快速消除一些明显的不匹配。 |
|
3
2
这看起来是一个很好的实现——我认为您不会比这快得多。 您是否分析了此代码并发现它是应用程序中的瓶颈?我认为这在大多数情况下都可以。 |
|
|
4
1
如果使用了
|
|
|
5
1
可变长度比较: 我使用您的代码作为我自己的应用程序的起始位置,它假定遮罩长度较短或等于比较文本长度。允许在掩码中使用长度可变的通配符点。例如:“concat”将匹配“c nc a t”或“c t”甚至“c nc t”的遮罩。
|
|
|
6
1
不确定这是否更快,但看起来很整洁:
|
|
|
7
0
我认为你没有给你的代码一点上下文,这有点不公平。当然,如果您只想搜索与模式长度相同的一个字符串,那么可以。 但是,如果您将它用作模式匹配器的核心,其中有几个其他模式您将要查找,那么这是一种糟糕的方法。还有其他已知的方法,其中最好的方法取决于您的确切应用。短语“不精确的模式匹配”是您关心的短语。 |
|
|
ridiculous_fish · std::是否保证短路? 3 年前 |
|
|
Hilde Schneider · php对我的if条件有问题 8 年前 |
|
|
user8188120 · 熊猫用np标记时间戳。其中比较 8 年前 |
|
|
Jarek · 与循环python数据帧中的下一个/上一个值进行比较 8 年前 |
|
|
vato · Bash脚本:测试浮点数是否在包括负数在内的特定范围内 8 年前 |