自用PTA题目记录0001
以下题目序号并无实际意义
7-1 检查密码
题目作者: 陈越 单位: 浙江大学 代码长度限制: 16 KB 时间限制: 400 ms 内存限制: 64 MB
本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点,还必须既有字母也有数字。
输入格式: 输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。
输出格式: 对每个用户的密码,在一行中输出系统反馈信息,分以下5种:
如果密码合法,输出Your password is wan mei.;
如果密码太短,不论合法与否,都输出Your passwordis tai duan le.;
如果密码长度合法,但存在不合法字符,则输出Your password is tai luan le.;
如果密码长度合法,但只有字母没有数字,则输出Your password needs shu zi.;
如果密码长度合法,但只有数字没有字母,则输出Your password needs zi mu.。
输入样例:
5
123s
zheshi.wodepw
1234.5678
WanMei23333
password.6*
输出样例:
Your password is tai duan le.
Your password needs shu zi.
Your password needs zi mu.
Your password is wan mei.
Your password is tai
luan le.
代码
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> pwdList = new ArrayList<String>();
int pwdAmount = Integer.parseInt(sc.nextLine());
if (pwdAmount <= 0 || pwdAmount > 100){
System.exit(1);
}
for (int i = 1; i <= pwdAmount; i++){
pwdList.add(sc.nextLine());
}
for (String pwd: pwdList){
// length check
if (pwd.length() < 6){
System.out.println("Your password is tai duan le.");
continue;
}
// Legal check
Boolean legalPwd = false;
Boolean ifHasNum = false;
Boolean ifHasCh = false;
for (int i = 0; i < pwd.length(); i++){
char ch = pwd.charAt(i);
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a'&& ch <= 'z')){
ifHasCh = true;
legalPwd = true;
continue;
}
if ((ch >= '0'&& ch <= '9')){
ifHasNum = true;
legalPwd = true;
continue;
}
if (ch == '.'){
legalPwd = true;
continue;
}
legalPwd = false;
break;
}
if (!legalPwd){
System.out.println("Your password is tai luan le.");
continue;
}
if (!ifHasCh){
System.out.println("Your password needs zi mu.");
continue;
}
if (!ifHasNum){
System.out.println("Your password needs shu zi.");
continue;
}
System.out.println("Your password is wan mei.");
}
sc.close();
}
}
总结
java做这题效率并不高,只是正好在用java(懒
PTA提交通过截图

本文记录了PTA平台的一个题目——检查密码的正确性。用户输入的密码需要至少6个字符,包含英文字母、数字和小数点,且必须同时有字母和数字。程序需要判断密码的合法性并提供相应反馈。文章提供了代码实现和问题总结,指出使用Java解决此问题的效率不高。

被折叠的 条评论
为什么被折叠?



