83 次浏览
在这个问题中,我们需要更改给定字符串中的最少字符,以使其左旋和右旋相同。在字符串中,我们观察到,只有当字符串长度为奇数且所有字符都相同,或者字符串长度为偶数且偶数索引和奇数索引处的字符相同,我们才能使字符串的左旋和右旋相同。例如,“abab”——字符串的左旋和右旋都是“baba”。“aaa”——字符串的左旋和右旋都是“aaa”。…… 阅读更多
127 次浏览
在这个问题中,我们将编写 Java 代码来查找任何字符串旋转开头和结尾连续 0 的最大和。首先,我们将使用一种简单的方法来解决这个问题,该方法生成二进制字符串的所有旋转并计算开头和结尾连续的 0 的数量。之后,我们将学习一种优化的算法来计算最大连续的 0 的数量。问题陈述——这里,我们有一个大小为 N 的字符串,只包含 0 和 1 字符。我们需要找到在任何…… 阅读更多
126 次浏览
在这个问题中,我们将学习如何实现展开链表。展开链表是链表的特殊版本。普通的链表在一个节点中包含单个元素,但展开链表在每个节点中包含一组元素。此外,展开链表中的插入、删除和遍历与典型的链表的工作方式相同。线性搜索在数组中的速度比在链表中快。因此,我们可以将元素添加到数组中,并在链表的每个节点中添加一个数组。此外,…… 阅读更多
79 次浏览
在这个问题中,我们需要实现 Vizing 定理。Vizing 定理用于图。定理陈述 - 对于任何无向图 G,色指数的值等于 d 或 d + 1,其中 d 是图的最大度数。任何顶点的度数是传入或传出边的总数。问题陈述 - 我们给定一个图,需要实现 Vizing 定理来查找图的色指数。注意 - 色指数是一个正整数,需要…… 阅读更多
153 次浏览
当我们需要将大型十进制数相乘时,Schonhage-Strassen 算法非常有用。由于 Java 支持 10^18 大小的整数,如果我们需要将超过 10^18 位数的数字相乘,我们需要使用 Schonhage-Strassen 算法,因为它是最快的乘法算法之一。它使用两个数字相乘的基本规则。它首先执行线性卷积,然后执行进位以获得最终结果。问题陈述 - 我们给定两个大型十进制数 mul1 和 mul2,需要实现 Schonhage-Strassen 算法来将两者…… 阅读更多
4K+ 次浏览
RSA 的名称取自其发明者,用于以高安全性加密文本。RSA 技术是最常用的加密文本技术之一,因为它是非对称加密算法。它利用素数的数学特性来加密文本。在 RSA 算法中,发送方和接收方拥有私钥。此外,还存在一个通用的公钥,发送方与接收方共享。发送方使用自己的公钥和私钥加密纯文本,接收方使用其私钥和公钥解密消息…… 阅读更多
349 次浏览
线性同余发生器 (LCG) 是一种生成看起来像随机数但实际上是确定的数字序列的技术。这就是称其为伪随机数的原因之一。线性同余发生器 (LCG) 技术基于前一个数字生成随机数,并使用线性递推来生成随机数序列。我们可以使用以下 LCG 公式根据前一个数字生成随机数。$$\mathrm{x_{n+1}=(mult\:x_{n}+\:increment\:mod\:modulus)}$$ 在上述公式中,“mod”表示模运算。$\mathrm{x_{n+1}}$ - … 阅读更多
92 次浏览
在这个问题中,我们需要找到字符串中模式的索引。实现高效的文本搜索对于允许用户轻松搜索大型文本数据库非常重要。例如,您正在 Microsoft Word 中编写博客或在 VSCode 中编写代码,包含 10 万个以上的单词。如果搜索算法效率低下,则在搜索任何单词或句子时,它可能需要时间来显示搜索结果。我们将学习两种不同的方法来实现字符串搜索算法。一种是简单的方法,另一种是 KMP 算法。问题陈述 - … 阅读更多
68 次浏览
在这个问题中,程序员需要对字符串执行查询。还需要旋转字符串并打印更新字符串的字符。解决这个问题的最佳方法是不断更新索引值,并在需要打印字符时访问字符串字符。问题陈述——我们给定字符串 alpha 和包含名为“que”的数字对的数组。任务是对字符串 alpha 执行数组中给出的查询。遵循以下查询操作规则。(1, a) - 进行总共左旋转…… 阅读更多
64 次浏览
在这个问题中,我们需要通过对 alpha1 字符串的每个字符执行最多 x 次循环移位操作来将一个字符串转换为另一个字符串。解决此问题的简单方法是对 alpha1 字符串的每个字符旋转 x 次,然后我们检查它是否与 alpha2 字符串中位于同一索引处的字符匹配。第二种方法是通过查找同一索引处字符之间的循环差来解决问题。问题陈述——我们给定一个正整数 X。此外,我们还给定一个字符串 alpha1…… 阅读更多