今日头条 最大映射
2016-07-27 20:07
337 查看
有 n 个字符串,每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字,不同字符映射为不同的数字。这样每个字符串就可以看做一个整数,唯一的要求是这些整数必须是正整数且它们的字符串不能有前导零。现在问你怎样映射字符才能使得这些字符串表示的整数之和最大?
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n , 接下来有 n 行,每行一个长度不超过 12 且仅包含大写字母 A-J 的字符串。 n 不大于 50,且至少存在一个字符不是任何字符串的首字母。
输出描述:
输出一个数,表示最大和是多少。
输入例子:
2
ABC
BCA
输出例子:
1875
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n , 接下来有 n 行,每行一个长度不超过 12 且仅包含大写字母 A-J 的字符串。 n 不大于 50,且至少存在一个字符不是任何字符串的首字母。
输出描述:
输出一个数,表示最大和是多少。
输入例子:
2
ABC
BCA
输出例子:
1875
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; /** * ABC=100×A+10×B+C * BCA=100×B+10×C+A * ABC+BCA=110×B+101×A+11×C * 要使和最大,则权值越大的映射的数字应越大 */ public class Main { static class Element { long w;//权值 boolean flag;//不能为0 } public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNext()) { int n; Element[] es = new Element[10]; for (int i = 0; i < 10; i++) { es[i] = new Element(); } n = scan.nextInt(); for (int i = 0; i < n; i++) { String str = scan.next(); calWeight(es, str); } System.out.println(sovle(es)); } scan.close(); } private static long sovle(Element[] es) { long res = 0; Arrays.sort(es, new Comparator<Element>() { @Override public int compare(Element e1, Element e2) { return e1.w > e2.w ? 1 : (e1.w == e2.w ? 0 : -1); } }); //权值最低且不能为0 if (es[0].flag) { int i; //权值最小可以为0字母 for (i = 1; i < 10; i++) { if (!es[i].flag) { break; } } Element temp = es[i]; for (; i > 0; i--) { es[i] = es[i - 1]; } es[0] = temp; } for (int i = 9; i >= 0; i--) { res += es[i].w * i; } return res; } private static void calWeight(Element[] es, String str) { int len = str.length(); long base = 1; for (int i = len - 1; i >= 0; i--, base *= 10) { int index = str.charAt(i) - 'A'; es[index].w += base; if (i == 0) {//首字母不能为0 es[index].flag = true; } } } }
相关文章推荐
- 今日头条开启广告系统了
- Android仿今日头条滑动页面导航效果
- Android实现仿网易今日头条等自定义频道listview 或者grideview等item上移到另一个view中
- IOS仿今日头条滑动导航栏
- 4年估值破600亿,威胁腾讯“霸主”地位,这个技术宅是如何做到的?
- 互联网广告片如何颠覆传统??5个案例搞定洗脑广告
- 今日头条刷阅读量工具,今日头条刷阅读量软件
- 疯狂互联网产品系列(一、别人的今日头条)
- UC浏览器新版走新闻路线,酷似今日头条,腾讯模式再现!
- 仿网易/今日头条滑动视图
- App攻略:一篇文章看懂线下预装市场
- android实现高仿新版今日头条app1(框架部分)
- 多边形构成问题(今日头条笔试题)
- html仿今日头条数据列表
- 聚合类新闻客户端产品分析
- 聚合类新闻客户端产品功能点详情分析
- 聚合类新闻客户端初体验
- Android 自定义控件玩转字体变色 打造炫酷ViewPager指示器
- Android 仿今日头条首页标题栏效果