最大對映問題

2021-07-22 21:37:57 字數 1136 閱讀 3499

分析

:題目比較簡單,我們分析每乙個字串中每乙個字母的權重(1,10,100…),然後將所有字母的權重加起來,按照權重進行排序這樣就可以獲得最大對映的序列。但是由於題目要求不能有前置0,所以如果出現的字母種類達到10種,那麼就需要找到乙個最小權重且不為首字母的字母,將它提前賦值為0。然後剩下的字母從9開始倒序賦值即可。

def

solution

(strings):

deftoint

(ch):

return ord(ch)-65

power = [10**i for i in range(10)]

count = {}

firsts = set()

for string in strings:

firsts.add(toint(string[0]))

val = 1

for index in [toint(ch) for ch in string[::-1]]:

if index in count:

count[index]+= val

else:

count[index] = val

val*=10

count = sorted(count.items(),key=lambda x:x[1])

result = [0]*10

print(len(count))

if len(count)==10:

for i,index in count:

if i not

in firsts:

count.remove((i,index))

result[i] = 0

break

init=9

for i,j in count[::-1]:

result[i],init = init,init-1

ans = 0

print(result,count,firsts)

for string in strings:

ans += reduce(lambda x,y:x+result[toint(y[0])]*y[1],zip(string[::-1],power),0)

return ans

今日頭條 最大對映

有 n 個字串,每個字串都是由 a j 的大寫字元構成。現在你將每個字元對映為乙個 0 9 的數字,不同字元對映為不同的數字。這樣每個字串就可以看做乙個整數,唯一的要求是這些整數必須是正整數且它們的字串不能有前導零。現在問你怎樣對映字元才能使得這些字串表示的整數之和最大?輸入描述 每組測試用例僅包含...

程式設計之最大對映

有 n 個字串,每個字串都是由 a j 的大寫字元構成。現在你將每個字元對映為乙個 0 9 的數字,不同字元對映為不同的數字。這樣每個字串就可以看做乙個整數,唯一的要求是這些整數必須是正整數且它們的字串不能有前導零。現在問你怎樣對映字元才能使得這些字串表示的整數之和最大?輸入描述 每組測試用例僅包含...

view對映問題

1.頁面元素和頁面bean 即view 的對映是通過mapingtool實現的,要注意的問題是 view裡面的字段要和頁面元素的property一致,要不然後出現 集合裡找不到xx屬性的異常 再者,頁面元素的name屬性也要和view裡面的字段一致,不然後出現從頁面到view轉換時該字段為空的現象 ...