最大映射(今日头条2017笔试)
2017-09-24 12:21
597 查看
开始刷笔试题了~
先放题→→
有 n 个字符串,每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字,不同字符映射为不同的数字。这样每个字符串就可以看做一个整数,唯一的要求是这些整数必须是正整数且它们的字符串不能有前导零。现在问你怎样映射字符才能使得这些字符串表示的整数之和最大?
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n , 接下来有 n 行,每行一个长度不超过 12 且仅包含大写字母 A-J 的字符串。 n 不大于 50,且至少存在一个字符不是任何字符串的首字母。
输出描述:
输出一个数,表示最大和是多少。
输入例子1:
2
ABC
BCA
输出例子1:
1875
终于开始试着用python写这种代码了
写了半天终于弄出来放上去测试结果提示有问题orz
暂时没检查出来问题,既然我输出的数更大,应该是答案错了?
先放题→→
有 n 个字符串,每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字,不同字符映射为不同的数字。这样每个字符串就可以看做一个整数,唯一的要求是这些整数必须是正整数且它们的字符串不能有前导零。现在问你怎样映射字符才能使得这些字符串表示的整数之和最大?
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n , 接下来有 n 行,每行一个长度不超过 12 且仅包含大写字母 A-J 的字符串。 n 不大于 50,且至少存在一个字符不是任何字符串的首字母。
输出描述:
输出一个数,表示最大和是多少。
输入例子1:
2
ABC
BCA
输出例子1:
1875
终于开始试着用python写这种代码了
#-*-coding:,utf-8-*- num = {'A':0, 'B':0, 'C':0, 'D':0, 'E':0, 'F':0, 'G':0, 'H':0, 'I':0, 'J':0} iin=eval(input()) in_str=[] num2s = [] for i in range(iin): in_str.append(input()) #计算字母权值,根据权值判断字母应对应的数字 for str in in_str: x = len(str)-1 for alp in str: if alp == 'A': num['A'] = num['A']+10**x elif alp == 'B': num['B'] = num['B']+10**x elif alp == 'C': num['C'] = num['C']+10**x elif alp == 'D': num['D'] = num['D']+10**x elif alp == 'E': num['E'] = num['E']+10**x elif alp == 'F': num['F'] = num['F']+10**x elif alp == 'G': num['G'] = num['G']+10**x elif alp == 'H': num['H'] = num['H']+10**x elif alp == 'I': num['I'] = num['I']+10**x elif alp == 'J': num['J'] = num['J']+10**x x=x-1 #按照权值排序 for i,j in sorted(num.items(),key=lambda ite:ite[1]): num2s.append(i) print(num2s) sum = 0 #求出总和 for str in in_str: x = len(str)-1 one_n = 0 #求单个字符串的值,用index()查找字母在列表中的位置序号转换为数字 for alp in str: one_n=one_n+(num2s.index(alp))*10**x x=x-1 print(one_n) sum=sum+one_n print(sum)
写了半天终于弄出来放上去测试结果提示有问题orz
您的代码已保存 答案错误:您提交的程序没有通过所有的测试用例 case通过率为85.00% 测试用例: 50 IAAAHAHCJGBJ FAAABCABGIFF FABBJIAGICCG CAJEAIHBCFIF CAEBJCGFEEJC JAJEFADFHHDH FAFCEDDGBIIH EACHGBAJJICF CACECDFDBFFC BAJADCBDDDCE JAEFEDICECGH FAAHGHABHFIC CAIIAJDHBCDJ FAIHHJGDEBHA DAFCHCCDIIDG HAHAHIIGADGI IAJECCIDJABD EACFDDDCCBBA IAFJFIDFEDGG IAGIJBIGDIFB DAFHBFCBJGDB EACIBEIEGHAH FAJDHJBIBBCC BABIACEFHGDJ JAEAHBABBDIB FAHJCEAFHHAF DAHAFCBAJCHE IAEFCFCIJBBA FAGEIEJFGGIH CADBHGCGAJCA EAJHGGGCCBBC GAHFEHFHIJAI CAADICHAJACG CADFFHIHFCAF EAIFFIFHAJGI IAICCJIACEDE CABJIBGECJEA DAFGIEFBDGDG FACDAIIJCJJF BAAJHJFIHGHD BAIDCEABEHDD JAGHGICFHDAI GACBGJBEJCAJ GAJDEDBGGFJF DAHAFEHEJHJD JAJDEDGJBCBI CAFGFJEIGFAI CAHGDEDACGDI CABACDGJDJHJ EAFAIDAAFAAI 对应输出应该为: 31563768760690 你的输出为: 32270430830783
暂时没检查出来问题,既然我输出的数更大,应该是答案错了?
相关文章推荐
- 今日头条2017后端工程师实习生笔试题——最大映射
- 今日头条2017校园招聘 春招4.18笔试
- 今日头条2017后端工程师实习生笔试题
- 今日头条 最大映射
- 今日头条 最大映射
- 今日头条2017客户端工程师实习生笔试题(回文解码)
- 2017-今日头条笔试题
- 2017今日头条前端实习生笔试题
- 【牛客网】今日头条2017客户端工程师实习生笔试题
- 木棒拼图(multiset 的应用)----今日头条2017后端工程师实习生笔试题
- 今日头条2017暑期实习生招聘笔试编程题之函数最宽尖峰
- 将字符串编码成数值,求数值最大和问题(今日头条笔试题)
- [今日头条] 2017客户端工程师实习生笔试题
- 算法面试题-今日头条2017客户端工程师实习生笔试题4:或与加
- 今日头条笔试题:“最小数字*区间和”的最大值【单调栈】
- 今日头条2017后端工程师实习生笔试题
- 将字符串编码成数值,求数值最大和问题(今日头条笔试题)
- Trie树/字典树题目(2017今日头条笔试题:异或)
- 【今日头条2017内推笔试题】二维平面整数点集
- 今日头条2017后端工程师笔试题