题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

while (str = readline()) {
  const regNum = /[0-9]/,
        regUp = /[A-Z]/,
        regLow = /[a-z]/,
        regOth = /[^0-9A-Za-z]/ // 其他符号 正则
  
  // 长度 验证
  const lenFlag = str.length > 8

  // 包括 其中 三种
  let point = 0
  if (regNum.test(str)) point++
  if (regUp.test(str)) point++
  if (regLow.test(str)) point++
  if (str.match(regOth) && (str.match(regOth).length !== str.match(/\s/))) point++ // 排除空格和换行符
  
  // 验证 重复性
  const arr = []
  for (let i = 0; i < str.length - 2; i++) {
    arr.push(str.slice(i, i + 3))
  }
  const repeatFlag = arr.length === [...new Set(arr)].length

  // 输出结果
  const res = lenFlag && point > 2 && repeatFlag
  console.log(res ? 'OK' : 'NG')
}

#华为机试#
全部评论
写的很清晰易懂!!
点赞 回复 分享
发布于 2023-02-19 21:52 湖北

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务