题目描述

继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。

输入描述

第一行是一个整数T(1 ≤ T ≤ 100)表示测试样例数;接下来T行,每行给定一个分身后的电话号码的分身(长度在3到10000之间)。

输出描述:

输出T行,分别对应输入中每行字符串对应的分身前的最小电话号码(允许前导0)。

示例1

示例1

输入

4

EIGHT

ZEROTWOONE

OHWETENRTEO

OHEWTIEGTHENRTEO

输出

0

234

345

0345

思路:

观察("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE")

有的字母只在一个单词中出现,比如ZERO,TWO,FOUR,SIX,EIGHT

有点字母在两个或两个以上单词中出现,比如THREE中的H就在THREE和EIGHT中出现

那么只需要统计字母出现的频次就可以计算出每个单词的频次

最后反向计算出原始数字即可

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int row = sc.nextInt();

sc.nextLine();

while (row != 0) {

String s = sc.nextLine();

s = s.replace(" ", "");

int[] cache = new int[26];

char[] cs = s.toCharArray();

for (char c : cs) {

cache[c - 'A']++;

}

int[] res = new int[10];

res[0] = cache['Z' - 'A'];

res[2] = cache['W' - 'A'];

res[4] = cache['U' - 'A'];

res[6] = cache['X' - 'A'];

res[8] = cache['G' - 'A'];

res[1] = cache['O' - 'A'] - res[2] - res[4] - res[0];

res[3] = cache['H' - 'A'] - res[8];

res[5] = cache['F' - 'A'] - res[4];

res[7] = cache['S' - 'A'] - res[6];

res[9] = cache['I' - 'A'] - res[6] - res[5] - res[8];

StringBuilder sb = new StringBuilder("");

for (int i = 0; i <= 9; i++) {

while (res[(i + 8) % 10] > 0) {

sb.append(i);

res[(i + 8) % 10]--;

}

}

System.out.println(sb);

row--;

}

}

}

java号码分身_电话号码分身相关推荐

  1. java号码分身_电话号码分身问题

    电话号码分身 题意: 继MIUI8推出手机分身功能之后,MIUI9:("ZERO",":"FIVE","S:然后随机打乱这些字母,所生成的字 ...

  2. 电话号码分身 java_电话号码分身

    56 要先依次解码具有独一无二字符的数字,具有这样特点的数字有五个分别是FOUR(U),SIX(X), TWO(W),EIGHT(G),ZERO(Z),可以根据独特字符的个数直接判断有多少个相应的数字 ...

  3. java号码分身_[算法] 电话号码分身 (小米2017 秋招真题)[JavaScript]

    题目描述 继MIUI8推出手机分身功能,MIUI计划推出一个电话号码分身得功能:首先将电话号码中的每个数字加上8取个位,然后使用对应得大写字母代替 ("ZERO", "O ...

  4. 电话号码分身(java小米校招17)

    1.题目: 题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO" ...

  5. 电话号码分身 java,每日一题C++版(电话号码分身)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  6. 电话号码分身问题,小米笔试真题

    题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", &quo ...

  7. 小米面试题:手机分身,电话号码隐藏。

    小米面试题: 手机分身,电话号码隐藏. 0-9分别对应ZERO,ONE,TWO,...,NINE 为保证手机拨号安全性,拨号后,存为对应的字符串,并打乱顺序,保证安全性. 现在给定一个字符串,求最小的 ...

  8. 小米真题:电话号码分身

    题目描述:继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", &quo ...

  9. 电话号码分身(小米2017秋招真题)

    电话号码分身(小米2017秋招真题) 题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替(&quo ...

最新文章

  1. Matlab数据的可视化 -- 简易表面图
  2. 剑指offer:顺时针打印矩阵
  3. TF学习——TF之Tensorboard:Tensorflow之Tensorboard可视化简介、入门、使用方法之详细攻略
  4. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
  5. 存储计算解耦合,构建中国人英语语音数据库
  6. Exchange邮箱的创建与配置
  7. POJ - 1704 Georgia and Bob
  8. Android BlueDroid(三):BlueDroid蓝牙开启过程enable
  9. mysql之分页查询
  10. 动态得到查询结果后绑定
  11. linux程序设计——个人总结
  12. Android跨进程通信--AIDL原理解析
  13. 【云大会】之五《第七届云计算大会 Day1感受:喧嚣退潮、人气萎缩》
  14. Autosar DCM 诊断(Diagnostic Communication Manager)
  15. Android三级列表
  16. vmware虚拟机使用详解
  17. CMMI2.0之我见-配置管理CM
  18. 微信小程序毕业论文题目_SSM项目源码校园辩论管理平台+后台管理系统
  19. MATLAB——Simulink如何将模块进行封装
  20. 什么是α测试?什么是β测试?

热门文章

  1. 存储基础:LUN、ThickLUN与Thin LUN的联系和区别
  2. 解决公众号网页 微信免登录 重定向 地址 只能带一个参数问题
  3. 悟空crm客户管理,KSOA系统集成呼叫中心系统融合
  4. 实验室管理系统 可行性分析
  5. JWT 生成Token、解析Token的简单工具类
  6. JS基础—移动端网页特效
  7. 《OpenCv视觉之眼》Python图像处理十二 :Opencv图像轮廓提取之基于一阶导数的Roberts算法、Prewitt算法及Sobel算法
  8. 页面布局的几种宽度设置方式—html
  9. iTween插件使用整理
  10. Live555源码阅读笔记(一):源码介绍文档 及 源码目录结构