Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了

简介: Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了

题目描述:


大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk

d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’E’,那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大写字母A到N表示);后面两字符串第1对相同的英文字母’s’出现在第4个位置(从0开始计数)上,代表第4分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。


4afbe52afa85492b92fae645e6cdc6c9.png9e3eba452aa74454891777bd97dad0ba.png


Java代码:


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char[] chars1 = scanner.nextLine().toCharArray();
        char[] chars2 = scanner.nextLine().toCharArray();
        char[] chars3 = scanner.nextLine().toCharArray();
        char[] chars4 = scanner.nextLine().toCharArray();
        int no = 1;
        String date = "";
        int h = 0;
        int m = 0;
        for (int i = 0; i < Math.min(chars1.length,chars2.length); i++) {
            if (chars1[i] == chars2[i] && no == 1 && chars1[i] >= 'A' && chars2[i] <= 'G'){
                switch (chars1[i]){
                    case 'A': date = "MON"; break;
                    case 'B': date = "TUE"; break;
                    case 'C': date = "WED"; break;
                    case 'D': date = "THU"; break;
                    case 'E': date = "FRI"; break;
                    case 'F': date = "SAT"; break;
                    case 'G': date = "SUN"; break;
                }
                no++;
                continue;
            }
            if (chars1[i] == chars2[i] && no == 2 && chars1[i] >= '0' && chars1[i] <= '9'){
                h = chars1[i] - 48;
                break;
            }else if (chars1[i] == chars2[i] && no == 2 && chars1[i] >= 'A' && chars1[i] <= 'N') {
                h = chars1[i] - 55;
                break;
            }
        }
        for (int i = 0; i < Math.min(chars3.length,chars4.length); i++) {
            if (chars3[i] == chars4[i] && (chars3[i] + "").toUpperCase().toCharArray()[0] > 64 && (chars3[i] + "").toUpperCase().toCharArray()[0] < 91){
                m = i;
                break;
            }
        }
        String mf = "";
        String hf = "";
        if (h < 10) hf = "0" + h;
        else hf = "" + h;
        if (m < 10) mf = "0" + m;
        else mf = "" + m;
        System.out.print(date + " " + hf + ":" + mf);
        scanner.close();
    }
}



相关文章
|
Go
腥风血雨中,这招救了我的代码!
腥风血雨中,这招救了我的代码!
57 0
|
程序员 Android开发 iOS开发
程序员五一修图小贴士
程序员五一修图小贴士
155 0
程序员五一修图小贴士
程序人生 - 为什么大人永远不懂孩子的世界?
程序人生 - 为什么大人永远不懂孩子的世界?
112 0
程序人生 - 为什么大人永远不懂孩子的世界?
|
小程序 数据安全/隐私保护 计算机视觉
切勿外传,我要把我的写作“小心思”放出来了!| 年终总结之学习篇🚩
切勿外传,我要把我的写作“小心思”放出来了!| 年终总结之学习篇🚩
177 0
切勿外传,我要把我的写作“小心思”放出来了!| 年终总结之学习篇🚩
J3
|
机器学习/深度学习 存储 缓存
有图有真相的Java内存模型基础,你好意思不看嘛!
有图有真相的Java内存模型基础
J3
149 0
有图有真相的Java内存模型基础,你好意思不看嘛!
|
算法 数据挖掘 程序员
程序员究竟能干多少年?用数据说话!
程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型。 我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。
301 0
程序员究竟能干多少年?用数据说话!
|
设计模式 算法 架构师
狂补计算机基础知识,让我上了瘾,想要尽快和同龄人拉开差距,必须这么干,才有戏!!!!
狂补计算机基础知识,让我上了瘾,想要尽快和同龄人拉开差距,必须这么干,才有戏!!!!
176 0
|
芯片
假如一瞬间让所有人拥有世界上所有的知识 | 20181116奇葩说犀利言句摘录
“美国经济学家 诺奖得主西奥多·舒尔茨 研究结果:当社会的平均受教育水平更高的时候,贫富差距会越来越小——一旦共享知识了,人人变得更博学了,那个这个世界,将会每个角落的贫富差距都会在缩小,寒门将出更多的贵子” 人类文明最大的教训,就是对技术的警惕,对人性的宽容; 人类文明最大的经验,就是对技术的宽容,对人性的警惕。
1127 0
|
Python 机器学习/深度学习
听过很多道理,依然过不好这一生?
网上有一个经典的段子“听过很多道理,依然过不好这一生”。同样的道理我们也可以问问自己“学过这么多年英语,依然开不了口”,“看了这么多书,依然编不了程序”。
1084 0