Lexicographically n-th Permutation of a String in Java2025 年 5 月 6 日 | 阅读 3 分钟 给定一个仅由小写字母组成的长度为 m 的字符串。我们必须使用字典序方法来确定该字符串的第 n 个排列。 示例 1 输入 字符串 str[] = "xyz" int n = 4 输出 字典序排列为 "xzy" 解释 所有可能排列的排序顺序 xyz, xzy, yxz, yzx, zxy, zyx。第 4 个排列是 "xzy"。 示例 2 输入 字符串 str[] = "abcd" int n = 10 输出 字典序排列为 "bdac" 解释 所有可能排列的排序顺序 abcd, abdc, acbd, acdb, adbc, adcb, bacd, badc, bcad, bdac, ..... 第 10 个排列是 "bdac"。 示例 3 输入 字符串 str[] = "mn" int n = 2 输出 字典序排列为 "nm" 解释 所有可能排列的排序顺序 mn, nm。第 2 个排列是 "nm"。 方法:使用 STL 生成给定字符串的排列使用 STL 打印第 n 个排列的概念相对容易理解。我们应该使用 STL 来获取下一个排列,并一直持续直到我们达到第 n 个排列。我们在第 n 次迭代后退出循环,并打印包含我们第 n 个排列的字符串。 算法步骤 1:创建一个字符串 s 和一个 整数 N。 步骤 2:将字符串转换为字符 数组后,按升序字典序对其进行排序。 步骤 3:使用排列 函数,从第一个排列开始,计数到第 N 个排列。 步骤 4:从末尾遍历数组,找到第一个位置 a,使得 s[a] < s[a + 1]。 步骤 5:从数组末尾 (s[b]) 找到比 s[a] 小但比 s[a] 大的字符,然后交换它们。 步骤 6:翻转 a 位置之后的子数组,以获得下一个最小的字典序。 步骤 7:将字符数组转换为字符串后,打印第 N 个字典序排列。 实施文件名:LexicographicPermutations.java 输出 The lexicographic permutation is given by HWdellrloo 复杂度分析 上述代码的时间复杂度为 O(n + |S| log |S|),其中 S 是按对数线性时间排序的。为了准确表示运行时间的增长,即使 `next_permutation` 的均摊时间复杂度是常数且 n 与 |S| 无关,也必须将其包含在最终的时间复杂度表示中。空间复杂度为 O(1)。 下一个主题Java 中的 Bell 数 |
Java 中的 Prim 算法是最小生成树最常用的算法之一。Prim 算法从一个不包含顶点的生成树开始。在 Prim 算法中,我们维护两个顶点集,第一个包含位于 MSP 中的顶点……
阅读 6 分钟
Java 时间戳记录程序元素及其操作的创建、修改和更新时间。它们广泛用于金融应用程序、科学研究和其他需要精确时间数据的领域。Java 时间戳可用于计算、比较和识别时间...
阅读 4 分钟
在 Java 中,“finalisation”一词描述了对象在被垃圾回收之前所经历的清理过程。来自 java.lang.Object 类的 finalize() 函数使此过程更容易。子类应重写 finalize() 方法以释放资源...
5 分钟阅读
Java 编程语言可以使用 Java Speech API 的内置接口将文本转换为人类可识别的语音。它用于增强用户体验和舒适度。该 API 定义了一个跨平台的 API 来支持命令和控制识别器以及语音合成器。文本 -...
阅读9分钟
除法是一项基本的算术运算,但如果你不能使用除法 (/) 或模 (%) 运算符呢?在竞争性编程和系统设计中,你可能会遇到强制你打破常规的限制。一种这样的技术是使用二分查找来进行除法……
5 分钟阅读
在本节中,我们将讨论如何在 Java 中将矩阵旋转 180 度。在这个问题中,给出了一个方形矩阵,我们需要将其旋转 1800 度。示例 1:输入:4 6 7 8 9 3 2 1 9 0 4 5 8 0 3 2 输出:2 3...
阅读 10 分钟
Java.lang.String 或 String 类,是 API 中的一个重要类。String 类在 Java API 中具有许多许多程序员并未立即意识到的独特功能。理解 String 类是学习 Java 的先决条件。它...
阅读 4 分钟
在 Java 中,public 和 private 是关键字,被称为访问修饰符或说明符。它限制了类、构造函数、变量、方法和数据成员的作用域或可访问性。这取决于它应用的对象。Java 提供了四种类型的访问...
阅读 6 分钟
Java 中的 return 关键字用于完成方法的执行。return 后跟要返回给调用者的适当值。该值取决于方法的返回类型,例如 int 方法始终返回一个整数值。要点:它用于……
阅读1分钟
Java 提供了许多方法调用来检查和更改文件的权限,例如将只读文件更改为具有写入权限。当用户想要限制或修改允许的操作时,需要更改文件权限...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India