比如現在輸入:「阿膠」 阿對應的就是ae,膠對應的是j,實際可參與匹配的項有兩個c1
2 * c1
1 = 2。
現在弄點複雜的情況,輸入的4個字都是多間字,第乙個字對應漢字拼音首字母為「ae」、第二個對應「bd」、第三個對應「cfg」、第四個對應「opq」,那麼輸入有序組合的任意字元,比如abc,就能匹配上面完整的漢字。寫了乙個簡單的遞迴,實現上述的需求。
* ...
* @author meteoric_cry
*/public
class combdemo extends sprite
private
function inited():void
var a:array = getcombarr(_arr);
trace("共有:" + a.length + "種組合");
trace(a.join("\n"));
}private
function getcombarr(arr:array):array
}var newarr:array = new array();
for (var m:int = 2; m < len; m++)
newarr[0] = temparr;
return arguments.callee(newarr);
}else}}
}執行的結果:
共有:36種組合
abco
abcp
abcq
abfo
abfp
abfq
abgo
abgp
abgq
adco
adcp
adcq
adfo
adfp
adfq
adgo
adgp
adgq
ebco
ebcp
ebcq
ebfo
ebfp
ebfq
ebgo
ebgp
ebgq
edco
edcp
edcq
edfo
edfp
edfq
edgo
edgp
edgq
只需要對輸入的字母,與上述的結果進行indexof匹配即可知道是否滿足要求。
網上有乙個專門用於解決數學的向量和矩陣的庫sylvester
不同的有序陣列合併
有序陣列合併 void orderlistmerge int b self printlist a length alen self printlist b length blen int result 14 int p 0,q 0,i 0 p為a陣列下標 q為b陣列下標,i為合併陣列下標 任意子陣...
演算法有序陣列合併
最近看一本書上有乙個面試題,原題目是 有兩個遞增陣列 a1 a2,a1的記憶體空間足夠長,現在要求合併 a2到a1,並且要求移動次數最小 面試的時候 我們盡量要以 最高效的方式完成 下面是此題 o n 解法。合併 void mergearray int arra1,int arra2,int nle...
mysql組合索引的有序性《轉》
昨天同事關於軍規裡的一條mysql索引的問題諮詢我,才發現自己也不太了解組合索引的規則。於是來記錄一下 推薦 如果有order by的場景,請注意利用索引的有序性。order by 最後的字段是組合索引的一部分,並且放在索引組合順序的最後,避免出現file sort的情況,影響查詢效能。正例 whe...