機試題

26個字母,不區分大小寫,權重爲1-26,每一個字母的權重能夠任意分配,但不能重複。任
意輸入兩個單詞(字母數不超過255),請設計算法,可以計算出一種權重分配方法,使這
兩個單詞的權重差最大!算法

 

 

個人想法是取單詞A每一個字母出現爲+1,而單詞B對應每一個單詞出現記爲-1,先經過計算出兩個單詞全部字母的狀況,而後從大到小排序,可能結果的形式爲:p(13),c(9),h(2),e(0),w(-2),b(-6) ....o(-17);設置權重,將這個分爲兩部分,一部分>=0,一部分<=0的 1).則對應取p=26;c=25;h=24;(從p開始取一直到某個字母<=0爲止)o=1;.....(和前面不同,是逆過來,從負的最大開始但權重以1開始增長知道某個字母爲>=0) W1 = 26*13+25*9+......+(-17)*1 2).再反過來算一次,即p=1;c=2.......(一直到某個字母<=0);o=26....(一直到某個字母>=0); w2 = 1*13+2*9.....+26*(-17); 而後比較w1和w2哪一個大,哪一個大,哪一種設置權重就是合適的
相關文章
相關標籤/搜索