2012-01-09 54 views
2

我正在寫一個程序,測試一個給定的字符串生成的字符串,看看它們是否匹配,不知道字符串或它的長度。輸入字符串也不能被操縱。我的過程至今是生成的字符集排列的蠻力方法:將長度(1+)更快更有效地生成文件讀取排列?

置換「ABC ... XYZ」,直到字符串匹配。

但是,我想知道生成這些排列會更好還是更快,將它們保存到文件中,然後在匹配過程中從文件中讀取行?當然,事先生成文件。

回答

0

概率不是,因爲在這種情況下,你會爲​​磁盤IO,但生成的代碼小部分會從緩存中運行。代碼最多需要10次操作才能生成新的置換,並且速度比從磁盤讀取要快得多

+0

謝謝,這回答我的問題! – Aaron 2012-01-09 16:07:54

0

蠻力強制置換聽起來很糟糕(性能明智)。你可以舉一些例子,匹配什麼? String聽起來好像重複會被允許(foo),但set沒有那麼多。

要使用「圖釘」更迅速,你可以排序都匹配「堆棧」,並檢查它們是否是相同的,這甚至對字符串的工作,更常含一些字符:

stack => ackst 
tacks => ackst 

hello => ehllo 
oloeh => ehloo 

對於您可以使用正則表達式:

"tacks".matches ("[stack]+") 

如果大小匹配,但它們將無法匹配重複字符的字符串。

+0

這是一個字符串,不是一個集合,對此感到抱歉。但是,我只是對輸入字符串進行檢查,沒有對允許的輸入字符串進行操作。 – Aaron 2012-01-23 14:10:04

+0

甚至沒有輸入字符串的副本?你應該在問題中提到這一點。 – 2012-01-23 15:39:24

相關問題