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();
    }
}



相关文章
|
4月前
|
缓存 分布式计算 算法
码农死磕这份Java高级开发文档,成功'挤'进一线大厂,这也太强了吧
拿到一份offer比什么都重要,所以笔者专门花了近一个月的时间整理好了一份专门为Java面试而生的总结,注意的是笔者仅仅对面试技术方面的题目进行的总结,至于如何去和面试官去聊,怎么聊,聊得嗨,这里笔者就不谈了,因为这方面并不是笔者擅长的。
|
2月前
|
IDE 安全 程序员
揭秘如何用C编写出无敌的程序代码,你绝对会后悔错过!
揭秘如何用C编写出无敌的程序代码,你绝对会后悔错过!
14 1
|
4月前
|
数据采集 算法 Java
业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
29 1
|
8月前
|
设计模式 缓存 算法
花了30天才肝出来,史上最全面Java设计模式总结,看完再也不会忘
Design Patterns: Elements of Reusable Object-Oriented Software(以下简称《设计模式》),一书由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides合著(Addison-Wesley,1995)。这四位作者常被称为“四人组(Gang of Four)”,而这本书也就被称为“四人组(或 GoF)”书。他们首次给我们总结出一套软件开发可以反复使用的经验,帮助我们提高代码的可重用性、系统的可维护性等,解决软件开发中的复杂问题。
108 0
|
10月前
|
人工智能 IDE 算法
【周末闲谈】新的编程方式,程序员的未来何在?
【周末闲谈】新的编程方式,程序员的未来何在?
76 0
|
人工智能 运维 数据可视化
程序员养家活口接私活必备网站(顺便用技术改变世界)
程序员接私活的原因很多种(挣钱、养家糊口、提升技术等等)。下面整理了一下网站送给最有潜能的你。 提前准备好自己的笔记本和技术呦。
482 0
|
消息中间件 Kubernetes Cloud Native
记一次内部分享——瞎扯淡
记一次内部分享——瞎扯淡
记一次内部分享——瞎扯淡
|
设计模式 架构师 算法
程序人生 - 程序员:伤不起的30岁
程序人生 - 程序员:伤不起的30岁
99 0
J3
|
机器学习/深度学习 存储 缓存
有图有真相的Java内存模型基础,你好意思不看嘛!
有图有真相的Java内存模型基础
J3
127 0
有图有真相的Java内存模型基础,你好意思不看嘛!
|
架构师 程序员
码农代码之外的生存指南,不要等到而立之年再后悔
  程序员不应该只会写代码。   我觉得在程序员群体中,很多人有个误区,就是觉得作为码农,每天安安静静的敲代码、默默的做好技术就可以了,其他的事情都不用去思考,以为一切都会水到渠成。但是还没等到水到渠成,却先等来了中年焦虑。慢慢的等到自己到了三十多岁的时候,发现公司里年轻且更能加班码农越来越多,带来了职业发展上的焦虑,同时上有老下有小且薪资也慢慢遇到职业瓶颈,又加重了生活财务的焦虑。   最近又翻了翻之前看过的一本书《软技能-代码之外的生存指南》,再次来读,又有一番新的理解。   作为一名程序员,我们的职业与生活中,不能仅仅只关注代码和技术。
181 0