当前位置: 首页 > news >正文

【Java笔试强训】Day10(CM62 井字棋、HJ87 密码强度等级)

CM62 井字棋

链接:井字棋

题目:

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。
在这里插入图片描述

题目分析:

在这里插入图片描述

代码实现:

package Day10;public class Day10_1 {public boolean checkWon(int[][] board) {// write code hereint length = board.length;int sum1 = 0;int sum2 = 0;int sum3 = 0;int sum4 = 0;for (int i = 0; i < length; i++) {//每次到这里都是新的一行sum1 = 0;sum2 = 0;sum3 += board[i][i];sum4 += board[i][length-i-1];for (int j = 0; j < length; j++) {sum1 += board[i][j];sum2 += board[j][i];}if (sum1 == length || sum2 == length || sum3 == length || sum4 == length) {return true;}}return false;}
}

HJ87 密码强度等级

链接:密码强度等级

题目:

密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。
一、密码长度:
5 分: 小于等于4 个字符
10 分: 5 到7 字符
25 分: 大于等于8 个字符
二、字母:
0 分: 没有字母
10 分: 密码里的字母全都是小(大)写字母
20 分: 密码里的字母符合”大小写混合“
三、数字:
0 分: 没有数字
10 分: 1 个数字
20 分: 大于1 个数字
四、符号:
0 分: 没有符号
10 分: 1 个符号
25 分: 大于1 个符号
五、奖励(只能选符合最多的那一种奖励):
2 分: 字母和数字
3 分: 字母、数字和符号
5 分: 大小写字母、数字和符号
最后的评分标准:

= 90: 非常安全
= 80: 安全(Secure)
= 70: 非常强
= 60: 强(Strong)
= 50: 一般(Average)
= 25: 弱(Weak)
= 0: 非常弱(Very_Weak)

对应输出为:
VERY_SECURE
SECURE
VERY_STRONG
STRONG
AVERAGE
WEAK
VERY_WEAK
请根据输入的密码字符串,进行安全评定。

注:
字母:a-z, A-Z
数字:0-9
符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)
!"#$%&'()*+,-./ (ASCII码:0x21~0x2F)
:;<=>?@ (ASCII码:0x3A~0x40)
[]^_` (ASCII码:0x5B~0x60)
{|}~ (ASCII码:0x7B~0x7E)

提示:
1 <= 字符串的长度<= 300

在这里插入图片描述

题目分析:

在这里插入图片描述

代码实现:

package Day10;import java.util.Scanner;public class Day10_2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()) {String str = sc.nextLine();int sum1 = getLen(str);int sum2 = getChar(str);int sum3 = getNum(str);int sum4 = getSym(str);int sum = 0;if (sum2==20 && sum3>=10 && sum4>=10) {sum = sum1 + sum2 + sum3 + sum4 + 5;} else if (sum2==10 && sum3>=10 && sum4>=10) {sum = sum1 + sum2 + sum3 + sum4 + 3;} else if (sum2==10 && sum3>=10 && sum4==0) {sum = sum1 + sum2 + sum3 + sum4 + 2;}else {sum = sum1 + sum2 + sum3 + sum4;}if (sum >= 90) {System.out.println("VERY_SECURE");} else if (sum >= 80) {System.out.println("SECURE");} else if (sum >= 70) {System.out.println("VERY_STRONG");} else if (sum >= 60) {System.out.println("STRONG");}else if (sum >= 50) {System.out.println("AVERAGE");}else if (sum >= 25) {System.out.println("WEAK");}else if (sum >= 0) {System.out.println("VERY_WEAK");}}}public static int getLen(String str) {if (str.length() <= 4) {return 5;} else if (str.length() <= 7) {return 10;} else if (str.length() >= 8) {return 25;}return 0;}public static int getChar(String str) {int small = 0;int big = 0;for (int i = 0; i < str.length(); i++) {if (str.charAt(i) >= 65 && str.charAt(i) <= 90) {big++;}else if(str.charAt(i) >= 97 && str.charAt(i) <= 122){small++;}}if (small>0 && big>0) {return 20;} else if (small>0 || big >0) {return 10;}else {return 0;}}public static int getNum(String str) {int num = 0;for (int i = 0; i < str.length(); i++) {if (str.charAt(i)-'0' >= 0 && str.charAt(i)-'0'<=9) {num++;}}if (num>1) {return 20;} else if (num==1) {return 10;}else {return 0;}}public static int getSym(String str) {int num = 0;for (int i = 0; i < str.length(); i++) {if (!(str.charAt(i)>=65&&str.charAt(i)<=90)&&!(str.charAt(i)>=97&&str.charAt(i)<=122)&&!(str.charAt(i)-'0'>=0&&str.charAt(i)-'0'<=9)) {num++;}}if (num>1) {return 25;} else if (num==1) {return 10;}else {return 0;}}
}
http://www.lryc.cn/news/229135.html

相关文章:

  • C语言求数组中出现次数最多的元素
  • 【Python Opencv】Opencv画图形
  • 了解防抖和节流:提升前端交互体验的实用策略
  • SQL学习之增删改查
  • Ansible角色定制实例
  • ElastaticSearch--- es多字段聚合
  • 本周Github有趣开源项目:Rspress等6个
  • 【华为OD题库-016】字符串摘要-Java
  • 生成式AI - Knowledge Graph Prompting:一种基于大模型的多文档问答方法
  • 深度学习AIR-PolSAR-Seg图像数据预处理
  • 求最大公约数math.gcd()
  • 数据结构之队列
  • MySQL数据库——存储过程-循环(while、repeat、loop)
  • Django路由
  • 头歌实践平台-数据结构-二叉树及其应用
  • 2023.11.11通过html内置“required-star“添加一个红色的星号来表示必填项
  • pcie【C#】
  • 西门子精智屏数据记录U盘插拔问题总结
  • (论文阅读27/100)Deep Filter Banks for Texture Recognition and Segmentation
  • ARMday06(串口)
  • Rust字符串详解
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • Window安装MongoDB
  • 20.有效的括号(LeetCode)
  • Vue3组件传参之Mitt插件方式
  • 【数据仓库】数仓分层方法
  • Linux网络——自定义协议
  • 【OpenCV实现图像:用OpenCV图像处理技巧之巧用直方图】
  • 【Android】画面卡顿优化列表流畅度四之Glide几个常用参数设置
  • js控制手机蓝牙