NC200374. 优秀的蓝链判断
描述
雨甜学姐制定的规范如下:
对于一段字符串,若符合以下所有条件,则应认为是一段网址,应予以超链接的格式,即字符串变蓝并增加下划线
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') } });