提高密码强度2024 年 8 月 28 日 | 3 分钟阅读 问题陈述我们得到一个任务,需要增强密码的强度以满足特定条件。如果密码满足以下条件,则认为密码是强密码:
您的目标是确定使给定密码变强的最少步数。如果密码已满足条件,则返回 0。 在一步中,您可以执行以下任一操作:
提供一个函数,该函数接受当前密码作为输入,并返回加强密码所需的最小步数。 上述方法的 Java 实现Java 方法 1输出 Enter the password: p@ssw0rd123 Minimum steps to make the password strong: 0 代码解释上面的 Java 代码旨在根据特定条件确定加强密码所需的最小步数。强密码的条件包括长度在 6 到 20 个字符之间,包含至少一个小写字母、一个大写字母和一个数字,并且避免三个连续重复的字符。 迭代字符分析 代码使用字符数组迭代分析密码。它跟踪小写字母 (a)、大写字母 (A) 和数字 (d) 的计数。此外,它还会识别连续重复的字符,并将其计数存储在数组 (arr) 中。 密码长度检查 如果密码长度小于 6,则代码会计算缺失的总元素(小写、大写、数字),并添加必要的字符以满足最小长度要求(6)。如果密码长度大于 6 个字符,则代码会处理超过最大长度(20)的可能性。 调整密码长度 如果密码长度超过 20 个字符,则代码会计算多余的字符(over_len)。然后,它通过删除字符来调整长度。 处理连续重复字符 代码会遍历连续重复字符的计数 (arr)。它会策略性地减少计数,以避免出现三个连续重复的字符,从而最大限度地减少所需的总步数。 计算剩余步数 在调整长度并处理完重复字符后,代码会计算满足强密码条件所需的剩余步数。它会考虑缺失的小写、大写和数字字符,以及任何可以添加以满足条件的剩余字符。 时间复杂度解释代码的时间复杂度为 O(N),其中 N 是输入密码的长度。 下一个主题二叉树的枚举 |
在本文中,我们将详细学习内部排序和外部排序之间的区别。排序是用于按升序或降序排列数据的技术。排序技术的主要目的是对元素的位置进行比较和交换。其中...
阅读 2 分钟
? 本文讨论了 k 个栈的通用解决方案。整个研究目标如下。创建一个名为 kStacks 的数据结构来表示 k 个栈。kStacks 实现只能使用一个数组,即 kstacks 应将元素存储在同一个数组中。kStacks 必须...
阅读 3 分钟
扫雷是在一个由单元格组成的网格(游戏板)上进行的。每个单元格可以处于三种状态之一:未揭示、已揭示或已标记。一些单元格可能包含地雷,目标是揭示所有不包含地雷的单元格。关于...
阅读 6 分钟
区间合并是计算机科学和数学中一个众所周知的挑战。它围绕着合并一组区间,并将重叠的区间合并,得到一个简短的非重叠区间列表。这个问题在各个领域都有应用,包括调度、数据分析和计算...
阅读 10 分钟
算法 插入元素 STEP 1 START STEP 2 将要插入的元素存储在线性数据结构中 STEP 3 检查是否 (front == 0 && rear == MAX-1) || (front == rear+1) 则队列溢出 else goto step 4 STEP 4 检查是否 (front == -1) 则 front...
11 分钟阅读
假设我们要创建一个系统来存储包含电话号码(作为键)的员工记录。我们也希望以下查询能够快速运行:插入电话号码和任何必要的信息。查找电话号码并获取信息。删除电话号码和任何……
阅读 6 分钟
N元树概述 N元树是一种树状数据结构,它允许每个节点最多有 N 个子节点。N元树比二叉树(最多只能有两个子节点)提供了一种更灵活的数据组织方式...
阅读 4 分钟
线性搜索和二分搜索都是用于搜索元素的搜索方法。我们已将数组和键值都提供了这两种方法;我们所需要做的就是在数组中搜索该键。我们将返回对应于该键的索引值...
阅读 17 分钟
传统上,要查找数组中的最大元素,我们使用一个循环来迭代所有元素并返回该值。伪代码实现如下。伪代码 // 查找给定数组中的最大元素。 // arr:我们想要查找的数组...
阅读 12 分钟
井字棋,一种风靡全球的传统游戏,不仅带来乐趣,也引发学术研究。由于游戏的简单性,它是研究棋盘布局及其有效性的绝佳实例。在本文中,我们将探讨...
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India