密码验证合格程序(算法)

简介: 密码验证合格程序(算法)

/**  

* 021Abc9Abc1  

* 1.长度超过8位  

* 2.包括大小写字母.数字.其它符号,以上四种至少三种  

* 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)

*/


public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        validation(str);
    }
    private static void validation(String str) {
        //  1.长度超过8位
        if (str.length() <= 8) {
            System.out.println("不合格");
            return;
        }
        // 2.包括大小写字母.数字.其它符号,以上四种至少三种
        int little = 0;
        int max = 0;
        int num = 0;
        int other = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) <= 'z' && str.charAt(i) >= 'a') {
                little = 1;
            } else if (str.charAt(i) <= 'Z' && str.charAt(i) >= 'A') {
                max = 1;
            } else if (str.charAt(i) <= '9' && str.charAt(i) >= '0') {
                num = 1;
            } else {
                other = 1;
            }
        }
        if (little + max + num + other < 3) {
            System.out.println("不合格");
            return;
        }
        // 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)
        boolean flag = getTwoLength(str, 0, 2);
        if (!flag) {
            System.out.println("不合格");
        } else {
            System.out.println("合格");
        }
    }
    private static boolean getTwoLength(String str, int s, int e) {
        if(e > str.length()){
            return true;
        }
        if (!str.substring(e).contains(str.substring(s, e))) {
            s = s + 1;
            e = e + 1;
            return getTwoLength(str, s, e);
        } else {
            return false;
        }
    }
相关文章
|
3月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
100 1
|
16天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
18 3
|
28天前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
|
27天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
21天前
|
缓存 分布式计算 监控
算法优化:提升程序性能的艺术
【10月更文挑战第20天】算法优化:提升程序性能的艺术
|
3月前
|
存储 算法 安全
密码算法的分类
【8月更文挑战第23天】
91 0
|
5月前
|
监控 算法 Java
Java虚拟机(JVM)使用多种垃圾回收算法来管理内存,以确保程序运行时不会因为内存不足而崩溃。
【6月更文挑战第20天】Java JVM运用多种GC算法,如标记-清除、复制、标记-压缩、分代收集、增量收集、并行收集和并发标记,以自动化内存管理,防止因内存耗尽导致的程序崩溃。这些算法各有优劣,适应不同的性能和资源需求。垃圾回收旨在避免手动内存管理,简化编程。当遇到内存泄漏,可以借助VisualVM、JConsole或MAT等工具监测内存、生成堆转储,分析引用链并定位泄漏源,从而解决问题。
54 4
|
5月前
|
机器学习/深度学习 并行计算 搜索推荐
程序技术好文:桶排序算法及其Java实现
程序技术好文:桶排序算法及其Java实现
39 0
|
5月前
|
存储 人工智能 算法
程序与技术分享:Acwing算法笔记
程序与技术分享:Acwing算法笔记
|
5月前
|
人工智能 算法
程序技术好文:算法与数据结构
程序技术好文:算法与数据结构