检查是否可以通过字符串数组链形成一个环(Java)2024年9月10日 | 阅读 6 分钟 查找字符串数组是否可以链接在一起形成一个环。如果字符串X的最后一个字符和字符串Y的第一个字符相同,则字符串X可以放置在字符串Y之前的环中。 示例 1 输入 字符串a = {"python", "nodejs", "scripted-php"} 输出 是的,这些字符串可以连接形成一个环。 解释 对于给定的字符串数组,可以形成链的字符串是 python ? nodejs; nodejs ? scripted-php; scripted-php ? python。因此,这些字符串可以连接形成一个环。 示例 2 输入 字符串a = {"bac", "cda", "aaa", "aab"} 输出 是的,这些字符串可以连接形成一个环。 解释 对于给定的字符串数组,可以形成链的字符串是 bac ? cda; cda ? aaa; aaa ? aab; aab ? bac。因此,这些字符串可以连接形成一个环。 示例 3 输入 字符串a = {"ijk", "kji", "abc", "cba"} 输出 否,这些字符串不能连接形成一个环。 解释 对于给定的字符串数组,可以形成链的字符串是 ijk ? kji; abc ? cba,但它们不能形成一个环。因此,这些字符串不能连接形成一个环。 方法:使用有向图该方法将一个算法付诸实践,以确定有向图是否可以形成欧拉回路。它通过验证两个条件来完成此操作: 强连通性 (isSC):它确定网络中每个度大于零的顶点是否强连通,表明每个顶点都可以从其他每个顶点访问。 入度和出度相等:它检查每个顶点的入度和出度是否相等,这是欧拉回路的一个基本要求。 该技术使用深度优先搜索 (DFS) 遍历图,验证所有顶点都已被访问。为了验证双向连接,图也以反向方式构建。最后一步,它利用图结构来确定给定的字符串集合是否可以连接在一起形成欧拉回路。 算法 步骤 1:声明一个名为 StringChainedCycle 的类来表示一个无向图。 步骤 2:使用以下值初始化类变量:“in”表示一个用于存储每个顶点入度的数组;“ver”表示顶点的总数;“adj”表示一个用于存储图结构的邻接列表的动态数组。 步骤 3:设置每个顶点的邻接列表和类变量。 步骤 4:更新入度中的目标顶点,并在图中添加连接两个顶点的边。 步骤 5:检查每个顶点的度数和连接情况,以确定网络是否具有欧拉回路。 步骤 6:使用深度优先搜索 (DFS) 确认非零度顶点之间存在强连通性。 步骤 7:开始深度优先搜索遍历,从指定顶点开始。 步骤 8:为了验证连接,获取图的转置(反向)。 步骤 9:以字符串数组为基础,创建一个图,其中每个字符串代表一条边。 步骤 10:如果图包含欧拉回路,则返回 true 表示字符串可以连接在一起。 实施文件名:StringChainedCycle.java 输出 Yes, it can be chained 复杂度分析 上述代码的时间复杂度为 O(N),空间复杂度为 O(N)。 |
java.nio.FloatBuffer 类具有 equals() 函数。要确定提供的缓冲区是否等于另一个对象,请使用 FloatBuffer 类。当且仅当两个 float 缓冲区等效时,它们的元素类型才相同。剩余元素的数量是...
阅读 3 分钟
旋转矩阵是计算机科学中的一个常见问题,尤其是在图形和图像处理领域。有不同的方法可以旋转矩阵,其时间和空间复杂度各不相同。在这里,我们将讨论如何将矩阵顺时针旋转 90 度...
7 分钟阅读
这是 Google、Amazon、TCS、Accenture 等顶级 IT 公司面试中经常遇到的问题。通过解决这个问题,人们想检查应试者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将找出...
5 分钟阅读
Java 版本 JDK Alpha 和 Beta (1995) Java Alpha 和 Beta 是最初发布的版本,但它们具有高度不稳定的 API 和 ABI。提供的 Java 网页浏览器名为 WebRunner。Java 最早的公共版本是 1995 年的 JDK Alpha 和 Beta。它们不适合...
11 分钟阅读
这是 Google、Amazon、TCS、Accenture、Flipkart 等顶级 IT 公司面试中经常提出的问题。通过解决问题,人们希望检查应聘者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将...
5 分钟阅读
Java short 关键字是一种原始数据类型。它用于声明变量。它也可以与方法一起使用。它可以保存一个 16 位有符号二进制补码整数。要点:short 的最小值是 -32,768,最大值是 32,767...
阅读 6 分钟
Java 作为一种强类型语言,在处理不同数据类型时通常需要显式类型转换。最常见的转换场景是将对象转换为整数。这在处理从外部源(如数据库或用户输入)检索的数据时很重要,在这些数据中,数据...
阅读 8 分钟
问题陈述:我们给出了三个字符串 str1、str2、str3。我们需要找到出现在三个给定字符串中顺序相同但不一定连续的最长公共子序列。两个或多个字符串的公共子序列是公共的子序列……
阅读 6 分钟
在 Java 中,sort() 方法是 java.util.Arrays 类中定义的一个静态且重载的方法。它用于对不同类型的数组值进行排序。它被广泛用于按升序组织数据。sort() 方法可应用于原始类型(int,...
阅读 10 分钟
数组是固定大小的同类数据结构。数组的限制是它们的大小是固定的。这意味着我们在声明数组时必须指定元素的数量。这里出现一个问题,如果我们想插入...
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India