我正在编写一个程序,针对给定的字符串测试生成的字符串,看它们是否匹配,而不知道字符串或它的长度。输入字符串也无法操作。到目前为止,我的过程是生成字符集排列的强力方法:
对长度(1 +)
置换'abc ... xyz'直到字符串匹配。
但是,我想知道生成排列是更好还是更快,将它们保存到文件中,然后在匹配期间从文件中读取行?当然,事先生成文件。
答案 0 :(得分:0)
答案 1 :(得分:0)
概率不是,因为在这种情况下,您将受到磁盘IO绑定,但生成的代码的一小部分将从缓存运行。代码最多需要大约10次操作来生成新的排列,并且比从磁盘读取更快
答案 2 :(得分:0)
暴力强迫排列听起来很糟糕(表现明智)。你能举一些例子,比较一下吗? String
听起来好像允许重复(foo
),但set
没有那么多。
为了更快地匹配“堆栈”和“大头钉”,你可以对两者进行排序,并检查它们是否相同,哪些甚至适用于字符串,更频繁地包含一些字符:
stack => ackst
tacks => ackst
hello => ehllo
oloeh => ehloo
对于集合,您可以使用正则表达式:
"tacks".matches ("[stack]+")
如果大小匹配,但它们将无法匹配重复字符的字符串。