我正在解決一個有兩個輸入集的問題輸入1:多組規(guī)則(示例):規(guī)則集1:1. I am $name2. I am $age years old3. $bookname is my favorite book ....規(guī)則集2:1. I love $sportname2. $color is my favorite color ....規(guī)則集3:1. $fruit is my favorite fruit2. I am a $diet3. I speak $language4. I am from $countryname ....這里 $name,$age,$bookname... 是占位符??赡苡卸鄠€這樣的規(guī)則集。沒有限制。輸入2:多組輸入字符串。套裝 1:1. I am 26 years old2. I am James .....套裝 2:1. I am John2. ToKillAMockinBird is my favorite book .......第 3 組:1. TuesdaysWithMorrie is my favorite book2. I am Bill3. I am 26 years old ......套裝 4:1. I am Jack2. I am 27 years old3. WarAndPeace is my favorite book ......套裝 5:1. I am a vegan2. I speak English ......第 6 組:1. Purple is my favorite color2. I love football ......問題陳述 :對于輸入 2 中的每個字符串集,我需要與輸入 1 進行匹配,并判斷這些字符串是否以相同的順序出現(xiàn)。輸出 :Set1 --> falseSet2 --> trueSet3 --> falseSet4 --> trueSet5 --> trueSet6 --> false我嘗試通過迭代每個輸入集中的每個字符串并檢查它是否存在,如果存在,給它們一個數(shù)字,最后檢查這些數(shù)字是否按升序排列來嘗試暴力。但是,這效率不高。輸入的Set1、Set2可能是巨大的數(shù)據(jù)集。有更好的方法來解決這個問題嗎?
1 回答

呼啦一陣風
TA貢獻1802條經(jīng)驗 獲得超6個贊
這是一個想法:使用一些特殊的分隔符(或者周圍的模式)將規(guī)則集和輸入集中的行連接成一行
所以規(guī)則集 #1 可以看起來像這樣I am $name ### I am $age years old ### $bookname is my favorite book
或像這樣[I am $name] [I am $age years old] [$bookname is my favorite book]
然后您可以對輸入集執(zhí)行相同的操作并進行比較。在我看來,用正則表達式替換占位符\w+
可能就足夠了
添加回答
舉報
0/150
提交
取消