博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电话号码分身
阅读量:6908 次
发布时间:2019-06-27

本文共 1898 字,大约阅读时间需要 6 分钟。

题目描述

继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--;        }    }}

转载于:https://www.cnblogs.com/16crow/p/9560175.html

你可能感兴趣的文章
OpenWrt Web界面修改及功能实现实例说明
查看>>
java内存溢出的解决思路
查看>>
hibernate(六)一对一映射
查看>>
map遍历
查看>>
android结合Jenkins使用V2签名
查看>>
栏目添加缩略图
查看>>
[BZOJ 1221][HNOI2001]软件开发(费用流)
查看>>
用户注册流程分析
查看>>
6.1Python数据处理篇之pandas学习系列(一)认识pandas
查看>>
搞小程序遇到的问题及解决方案(持续更新)
查看>>
jquery ui tabs
查看>>
个人作业(alpha)
查看>>
ELK集成Log4net 重写一个TcpAppender
查看>>
【转载】win7下IIS的安装和配置图文教程
查看>>
一.c#概述,c#语言及其特点;c#与.net框架关系
查看>>
关于更新发布CSS和JS文件的缓存问题
查看>>
threading 多线程
查看>>
每个Android开发者必须知道的内存管理知识
查看>>
常用的PHP知识记录
查看>>
MYSQL(python)安装记录
查看>>