Day 43 电话号码 + 求和()

目录

1.电话号码

2.求和 


1.电话号码

链接:电话号码__牛客网
来源:牛客网
 

[编程题]电话号码

  • 热度指数:1461 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解


上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。
NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转换成数字形式的号码,并去除重复的部分。

输入描述:

输入包含多组数据。

每组数据第一行包含一个正整数n(1≤n≤1024)。

紧接着n行,每行包含一个电话号码,电话号码仅由连字符“-”、数字和大写字母组成。
没有连续出现的连字符,并且排除连字符后长度始终为7(美国电话号码只有7位)。


 

输出描述:

对应每一组输入,按照字典顺序输出不重复的标准数字形式电话号码,即“xxx-xxxx”形式。

每个电话号码占一行,每组数据之后输出一个空行作为间隔符。

示例1

输入

12
4873279
ITS-EASY
888-4567
3-10-10-10
888-GLOP
TUT-GLOP
967-11-11
310-GINO
F101010
888-1200
-4-8-7-3-2-7-9-
487-3279
4
UTT-HELP
TUT-GLOP
310-GINO
000-1213

输出

310-1010
310-4466
487-3279
888-1200
888-4567
967-1111

000-1213
310-4466
888-4357
888-4567

 

 TreeSet是一个有序集合

  • 它存储唯一的元素
  • 它不保留元素的插入顺序
  • 它按升序对元素进行排序
  • 它不是线程安全的
  • Set<String> treeSet = new TreeSet<>();
  • 全部代码
import java.util.*;

public class Main{
    static String s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    static String s2 = "222333444555666777788899991234567890";
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            TreeSet<String> set = new TreeSet<>();
            for(int i = 0;i < n;i++){
                String s = sc.next();
                s = s.replace("-","");
                String result = "";
                for(int j= 0;j < 7;j++){
                    result += s2.charAt(s1.indexOf(s.charAt(j)));
                }
                result = result.substring(0,3)+"-"+result.substring(3,7);
                set.add(result);
            }
            for(String str:set){
                System.out.println(str);
            }
            System.out.println();
        }
    }
}

 

2.求和

 链接:求和_好未来笔试题_牛客网
来源:牛客网
 

[编程题]求和

  • 热度指数:20519 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M

  • 算法知识视频讲解

输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

输入描述:

每个测试输入包含2个整数,n和m


 

输出描述:

按每个组合的字典序排列输出,每行输出一种组合

示例1

输入

5 5

输出

1 4<br/>2 3<br/>5

  • 全部代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习java的张三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值