pta 乙级 1014 福尔摩斯的约会 java

在这里插入图片描述https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560

//1014
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        char[] a=in.nextLine().toCharArray();
        char[] b=in.nextLine().toCharArray();
        char[] c=in.nextLine().toCharArray();
        char[] d=in.nextLine().toCharArray();
        int len=a.length<b.length?a.length:b.length;
        int len2=c.length<d.length?c.length:d.length;
        int t=0;
        String day="";
        int h=0,m=0;
        String week[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
        String outcome="";
        for(int i=0;i<len;i++){
            if(t==0&&a[i]==b[i]&&a[i]>='A'&&a[i]<='G'){
                day=week[a[i]-'A'];
                t++;
            }
            else if(t==1&&a[i]==b[i]&&(Character.isDigit(a[i])||(a[i]<='N'&&a[i]>='A'))){
                if(Character.isDigit(a[i])){
                    h=a[i]-'0';
                }
                else{
                    h=a[i]-'A'+10;
                }
                break;
            }
        }
        for(int i=0;i<len2;i++){
            if(c[i]==d[i]&&Character.isLetter(c[i])){
                m=i;
                break;
            }
        }
        System.out.printf("%s %02d:%02d",day,h,m);
    }
}

错误点,循环一定要能出;h=a[i]-‘0’;漏掉变成h=a[i]是错误的
然后就是几个写法的优化,
System.out.printf("%s %02d:%02d",day,h,m);格式化输出
Character.isDigit(a[i])是否是数字
Character.isLetter(c[i])是否是字母
a[i]<=‘N’&&a[i]>='A’直接大小比较不用减
int m = Math.min(s1.length(), s2.length());Math类的极值方法
char c1 = s1.charAt(i);字符定位的使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值