题解 | 密码强度等级

密码强度等级

https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

/*#牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432*/
#include <array>
#include <iostream>
using namespace std;

int main() {
  string s;
  cin >> s;
  int cent = 0;
  size_t size = s.size();
  if (size <= 4) cent = 5;
  else if (size <= 7) cent = 10;
  else cent = 25;
  array<int, 4> a{0};//-----------这里要注意array在局部作用域中不会初始化,要自己赋初值,不然会出现调试和直接自测的结果不一样的问题
  for (int i = 0; i < size; i++){
    if (s[i] >= '0' && s[i] <= '9') a[0]++;
    else if (s[i] <= 'z' && s[i] >= 'a') a[1]++;
    else if (s[i] <= 'Z' && s[i] >= 'A') a[2]++;
    else if (s[i] >= '!' && s[i] <= '~') a[3]++;
  }
  int temp = (a[1] > 0) + (a[2] > 0);
  switch (temp) {
  case 2:
    cent += 10;
  case 1:
    cent += 10;
  }
  switch (a[0]) {
  case 0:
    break;
  case 1:
    cent += 10;
    break;
  default:
    cent += 20;
  }
  switch (a[3]) {
  case 0:
    break;
  case 1:
    cent += 10;
    break;
  default:
    cent += 25;
  }
  temp = (a[0] > 0) + (a[1] > 0) * 2 + (a[2] > 0) * 2 + (a[3] > 0) * 8;
  switch (temp) {
  case 3:
  case 5:
    cent += 2;
    break;
  case 11:
    cent += 3;
    break;
  case 13:
    cent += 5;
  }
  if (cent >= 90) cout << "VERY_SECURE";
  else if (cent >= 80) cout << "SECURE";
  else if (cent >= 70) cout << "VERY_STRONG";
  else if (cent >= 60) cout << "STRONG";
  else if (cent >= 50) cout << "AVERAGE";
  else if (cent >= 25) cout << "WEAK";
  else cout << "VERY_WEAK";
}
// 64 位输出请用 printf("%lld")

#写题解领奖励##牛客春招刷题训练营#
全部评论

相关推荐

10-24 00:54
已编辑
门头沟学院 Java
牛客20646354...:这连小厂都找不到就离谱,只能说可能你根本没投什么小厂。说实话现在都要11月了,没什么岗位了。其实最好是在9月找,那时候暑假工刚走,岗位多的是,现在都占满了岗位了,秋招的秋招,顶替暑假工的也基本上都顶替了。 只能多投了,简历其实都差不多,你这都不是外卖+点评去找实习了,已经比好多人优秀了。实在找不到,可以降低一些标准的,能投到自研项目的小厂说实话可能比你去中大厂能学到更多东西。因为中大厂最多给你看一点点模块功能,小厂基本上全部代码甚至几个项目的代码都能拿到。
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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