PAT乙级算法-1014(JAVA实现)

PAT乙级算法-1014(JAVA实现)

注意事项:

解题思路-本题主要是对字符进行操作,A对应的ASCII位65,B的为66 依次加1,
详细解题思路看代码

package pta;
import java.util.Scanner;
/**
 * @author lqw
 * @date 2021/8/1-10:54 上午
 */
public class P1014 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String[] arrStr = new String[4];
        //创建一个数组用来接收相同的字符
        for (int i = 0; i < 4; i++) {
            arrStr[i] = sc.next();
        }
        //对数组中对字符串进行解析
        char[] c1 = arrStr[0].toCharArray();//接收的第一个字符
        char[] c2 = arrStr[1].toCharArray();//接收的第二个字符
        char[] c3 = arrStr[2].toCharArray();//接收的第三个字符
        char[] c4 = arrStr[3].toCharArray();//接收的第四个字符

        String[] weeks={"MON","TUE","WED","THU","FRI","SAT","SUN"};

        int length1 = c1.length > c2.length ? c2.length : c1.length;//判断第一个字符串和第二个字符穿的长度
        int length2 = c3.length > c4.length ? c4.length : c3.length;//判断第二个字符串和第三个字符穿的长度
        boolean flag = false;//用来判断第一组字符进行相同字符的标志符
        for (int i = 0; i < length1; i++) {
            if (('A' <= c1[i] && c1[i] <= 'G')) {
                if (c1[i] == c2[i]) {
                    if (!flag) {
                        System.out.print(weeks[c1[i]-'A']+" ");//输出星期几
                        flag=true;//找到满足星期几的大写字母-改变标志符
                        continue;//跳出循环
                    }
                }
            }
            if ((c1[i] >= '0' && c1[i] <= '9') || (c1[i] >= 'A' && c1[i] <= 'N')) {
                if (flag) {
                    if (c1[i] == c2[i]) {//第一组字符中第二相同的数字或者大写字母 由A-N

                        if (c1[i] >= '0' && c1[i]<= '9') {//0-9

                            System.out.print("0" + c1[i] + ":");

                        } else {//A-N

                            System.out.print((c1[i] - 'A') + 10 + ":");
                        }
                        break;//结束循环-提高效率-防止后面在有相等的字符
                    }
                }

            }
        }
        for (int i = 0; i < length2; i++) {//第二组字符进行比较

            if (Character.isUpperCase(c3[i]) || Character.isLowerCase(c3[i])) {//如果字符是大写字母或者小写字母才满足条件
                if (c3[i] == c4[i]) {

                    if (i >= 0 && i <= 9) {//如果在0-9位则前面加个零
                        System.out.print("0" + i);
                    } else {//否则直接输出即可
                        System.out.print(i);
                    }


                }
            }

        }

    }

    }



写在最后 有疑问或者更好的建议欢迎留言!每天都会进行回复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值