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


                }
            }

        }

    }

    }



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

上一篇:注解与反射


下一篇:1029 旧键盘