Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
来源:互联网 发布:算日子的软件 编辑:程序博客网 时间:2024/05/19 18:44
- 时间限制:1秒空间限制:32768K
- 算法知识视频讲解
题目描述
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述:
如果符合要求输出:OK,否则输出NG
输入例子:
021Abc9000021Abc9Abc1021ABC9000021$bc9000
输出例子:
OKNGNGOK
合法字符串 :
1.长度>8。
2.大写字母,小写字母,符号,数字,具有其中3种或者以上。
3.不能有长度为3或者3以上的子串相同。
输入字符串进行判断,是合法字符串输出OK,否则输出NG。
import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String s = sc.next();if (f(s)) {System.out.println("OK");} else {System.out.println("NG");}}}// 数字,大小写字母,符号static boolean f(String s) {int flag = 0;Pattern p1 = Pattern.compile(".*[a-z]+.*");//小写字母Pattern p2 = Pattern.compile(".*[0-9]+.*");//数字Pattern p3 = Pattern.compile(".*[^0-9a-zA-Z]+.*");//符号(除了字母和数字)Pattern p4 = Pattern.compile(".*[A-Z]+.*");//大写字母Matcher m1 = p1.matcher(s);Matcher m2 = p2.matcher(s);Matcher m3 = p3.matcher(s);Matcher m4 = p4.matcher(s);if (m1.matches()) {flag++;}if (m2.matches()) {flag++;}if (m3.matches()) {flag++;}if (m4.matches()) {flag++;}if (s.length() > 8 && flag >= 3 && f1(s)) {return true;}return false;}//判断是否有长度为3的字符子串相同static boolean f1(String s) {for (int i = 0; i < s.length()-3; i++) {String s1 = s.substring(i,i+3);String s2 = s.substring(i+3);if (s2.contains(s1)) {return false;}}return true;}}
0 0
- Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
- 《华为机试在线训练》之密码验证合格程序
- 华为机试在线训练-牛客网(12)密码验证合格程序
- 华为机试---密码验证合格程序
- 华为机试-密码验证合格程序
- 【华为机试】密码验证合格程序
- 华为机试在线训练108题:密码验证合格程序
- 华为机试题:密码验证合格程序
- 华为OJ(密码验证合格程序)
- 密码验证合格程序(华为oj)
- [华为机试练习题]31.密码验证合格程序
- 华为oj之密码验证合格程序
- 【华为oj】密码验证合格程序
- 华为oj 密码验证合格程序
- 华为OJ 密码验证合格程序
- 【华为OJ】【017-密码验证合格程序】
- 【华为 OJ】密码验证合格程序
- 华为oj 密码验证合格程序
- 于堆栈的(Stack-based ) 和基于寄存器(Register-based) 的虚拟机区别
- 值传递引用传递及指针传递
- Windows核心编程 第五章 作业(下)
- 筛选法找素数算法的一点改进
- 机房收费系统(一)登录
- Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
- py-faster-rcnn源码解读系列(五)——stage1_rpn_train.pt
- 机房收费系统(四)-上下机总结
- 抽象工厂模式
- 统计文件中数据出现的次数并排序
- 针对多种屏幕进行设计
- Java容器/集合总结
- Apache ab 压测
- PAT(乙级)1011 个位数统计 (15)