[1014]-福尔摩斯的约会

题目解析传送门:https://blog.csdn.net/LITTENg/article/deta...

public function test()
{
    // 字条Note
    $n1 = '3485djDkxh4hhGE';
    $n2 = '2984akDfkkkkggEdsb';
    $n3 = 's&hgsfdk';
    $n4 = 'd&Hyscvnm';

    // 转换成:日期缩写
    $week = ['A'=>'MON', 'B'=>'TUE', 'C'=>'WED', 'D'=>'THU', 'E'=>'FRI', 'F'=>'SAT', 'G'=>'SUN'];

    $flag = 0;                // 0日期 、 1小时
    $n1_len = strlen($n1);    // 字条n1的字符串长度
    $n3_len = strlen($n3);    // 字条n3的字符串长度

    // 循环比较n1 n2
    for ($i=0; $i < $n1_len ; $i++) {
        if ($flag == 0) {
            // 星期 && 同位置的字符相等 && 为字母 && 字符范围是 A - G
            if ($n1[$i] === $n2[$i] && $n1[$i] >= 'A' && $n1[$i] <= 'G') {
                $res[] = $week[$n1[$i]];
                $flag = 1;
                continue;
            }
        } else {
            // 小时 && 同位置的字符相等 && 字符范围是 0 - 9 、A - N
            if ($n1[$i] === $n2[$i] && preg_match('/[0-9A-N]/', $n1[$i])) {
                // ord($n1[$i]) - 65 + 9 + 1
                $res[] = ctype_alpha($n1[$i]) ? ord($n1[$i]) - 55 : '0' . $n1[$i];
                break;
            }
        }
    }

    // 循环比较n3 n4
    for ($i=0; $i < $n3_len; $i++) {
        // 分钟 && 同位置的字符相等 && 为字母
        if ($n3[$i] === $n4[$i] && preg_match('/[a-zA-Z]/', $n3[$i])) {
            if (isset($res)) {
                // 字符位置就是分钟:记录相等字符的位置,从0开始
                $res[] = $i > 9 ? : '0' . $i;
                break;
            }
        }
    }

    echo $res[0] . ' ' . $res[1] . ':' . $res[2];
}

笔记:

PHP字符类型检测的内置扩展:ctype

ctype_alnum — 做字母和数字字符检测
ctype_alpha — 做纯字符检测
ctype_digit — 做纯数字检测
ctype_lower — 做小写字符检测
ctype_upper — 做大写字母检测
ctype_space — 做空白字符检测

//测试是否是纯数字
preg_match('/\d/', $char)
//测试是否是纯字符
preg_match('/[a-zA-Z]/', $char)

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!