提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目较长上链接
题目链接
输入一串字符,用五个方法来判定得分
一定要注意判断符号的时候
for (int i = 0; i <str.length() ; i++) {
if((str.charAt(i)<'a'||str.charAt(i)>'z')
&&(str.charAt(i)<'A'||str.charAt(i)>'Z')
&&(str.charAt(i)<'0'||str.charAt(i)>'9')){
count++;
}
}
中间是或的关系
import java.util.Scanner;
public class Main {
//密码强度等级:
public static int getLen(String str){
int len=str.length();
if(len<=4){
return 5;
}else if(len<=7){
return 10;
}else{
return 25;
}
}
public static int getChar(String str){
int big=0;
int small=0;
for (int i = 0; i <str.length() ; i++) {
if(str.charAt(i)>='a'&&str.charAt(i)<='z'){
small++;
}if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){
big++;
}
}
if((small+big)==0){
return 0;
}else if((small>0&&big==0)||(big>0&&small==0)){
return 10;
}else{
return 20;
}
}
public static int getNum(String str){
int num=0;
for (int i = 0; i <str.length() ; i++) {
if(str.charAt(i)>='0'&&str.charAt(i)<='9'){
num++;
}
}
if(num==0) return 0;
else if(num==1) return 10;
else return 20;
}
public static int getSign(String str){
int count=0;
for (int i = 0; i <str.length() ; i++) {
if((str.charAt(i)<'a'||str.charAt(i)>'z')
&&(str.charAt(i)<'A'||str.charAt(i)>'Z')
&&(str.charAt(i)<'0'||str.charAt(i)>'9')){
count++;
}
}
if(count==0) return 0;
else if(count==1)return 10;
else return 25;
}
public static int getSym(int s1,int s2,int s3,int s4){
if((s2==20)&&(s3>0)&&(s4>0)){
return 5;
}else if((s2>0)&&(s3>0)&&(s4>0)){
return 3;
}else if((s2>0)&&(s3>0)&&(s4==0)){
return 2;
}else
{
return 0;
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNextLine()){
String str=scanner.nextLine();
int s1=getLen(str);
int s2=getChar(str);
int s3=getNum(str);
int s4=getSign(str);
int s5=getSym(s1,s2,s3,s4);
int sum=s1+s2+s3+s4+s5;
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{
System.out.println("VERY_WEAK");
}
}
}
}
定义一个sum变量分别用于计算出现1的总次数,如果行或列对脚线出现的次数和分别等于正方形棋盘的宽,则满足输出true
import java.util.*;
public class Main {
public boolean checkWon(int[][] board){
// write code here
int size=board.length;
int sum=0;
//检查每一行
for (int i = 0; i <size ; i++) {
sum=0;
for (int j = 0; j <size; j++) {
sum+=board[i][j];
}
if(sum==size){
return true;
}
}
//检查每一列
for (int i = 0; i <size ; i++) {
sum=0;
for (int j = 0; j <size ; j++) {
sum+=board[j][i];
}
if(sum==size){
return true;
}
}
//检查主对角线
sum=0;
for (int i = 0; i <size ; i++) {
sum+=board[i][i];
}
if(sum==size)return true;
//检查副对角线
sum=0;
for (int i = 0; i <size ; i++) {
sum+=board[i][size-i-1];
}
if(sum==size)return true;
return false;
}
}