列表

详情


NC200374. 优秀的蓝链判断

描述

作为CustOJ镜像站的网址custoj.xyz,发在OO群里却不能被正确识别成超链接,这使得雨甜学姐(测试兼运维)非常生气。

因此,雨甜学姐联系鹅讯总部,要求制定正确的网址识别规范,并表示走着瞧。

雨甜学姐制定的规范如下:

对于一段字符串,若符合以下所有条件,则应认为是一段网址,应予以超链接的格式,即字符串变蓝并增加下划线

1. 整体格式为[协议][域名][目录]
2. 协议必须为http://或https://(小写); 协议允许忽略不写。
3. 域名为一串由.连接的字符串,满足下述条件; 不允许为空。
    3.1 用.分割的每一部分都不为空
    3.2 用.分割的每一部分,都由字母、数字或下划线组成
    3.3 用.分割的最后一部分称为顶级域,顶级域由2个及以上字母组成,不允许出现其他字符
4. 目录为一串由/连接的字符串,满足下述条件; 目录允许为空。
    4.1 第一个/前不能出现字符
    4.2 最后一个/后的部分允许为空
    4.3 最后一个/后不为空的部分,或最后一个/后为空时,其前面的部分,称为最后一级目录。最后一级目录允许有一个后缀名,前后部分用一个.分割,由字母、数字或下划线组成。
    4.4 除上述情况外,用/分割的每一部分,都由字母、数字或下划线组成

作为鹅讯未来的实习生,请你出面解决这个网址识别的问题。


输入描述

有多组输入。

每组输入一行,一个字符串,可能包含大小写英文字母、数字及特殊符号(/.:_),长度不超过100。

输出描述

对于每组输入,判断输入的字符串是不是一个网址

如果是网址,需要变蓝成为超链接,则输出Blue。否则输出Gray。

示例1

输入:

https://ac.nowcoder.com/acm/contest/2763
custoj.xyz/
http://oj.cust.edu.cn/reg/index.html
Gei_ge_jiang_ba

输出:

Blue
Blue
Blue
Gray

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

JavaScript(Node 6.11.4) 解法, 执行用时: 120ms, 内存消耗: 14028K, 提交时间: 2019-12-13 23:01:39

const readline = require('readline');
const rl = readline.createInterface({input: process.stdin});
rl.on('line', (line) => {
	if (/^(https?:\/\/)?(\w+\.)+[a-zA-z]{2,}((\/\w+)*|((\/\w+)+\.\w+))\/?$/.test(line)) {
		console.log('Blue')
	} else {
		console.log('Gray')
	}
});

上一题