分析
:題目比較簡單,我們分析每乙個字串中每乙個字母的權重(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轉換時該字段為空的現象 ...