我的问题是这样的。 任何人都可以帮我解决如何打印给定元素的转置。
任何人都可以帮我解决如何打印给定元素的转置。 我不知道如何为此申请循环。请帮我解决这个问题 当我在MNC公司参加面试时,面试官提出的问题。
我知道如何以相反的顺序打印它,但我没有得到如何使用转置。
帮助我。 提前谢谢。
abc
def
g
我想像这样打印这个元素的转置
ad
be
cfg
我如何使用java
执行此操作答案 0 :(得分:2)
我没有为您提供代码。这是我的提示
要进行转置,您需要交换行和列。将输入字符串视为3x3方阵,其中每个字母都是一个元素。现在将输入存储在2d数组中。存储转置后,只需打印相对于行值的列值。
c1 c2 c3
r1 a b c
r2 d e f
r3 g
答案 1 :(得分:0)
假设距离只计算掉期,这里有一个基于排列的想法,它以线性时间运行。
算法的第一步是确保两个字符串的字符内容真的相同。这可以使用哈希表(或覆盖所有字母表的固定数组)在线性时间内完成。如果不是,那么s2不能被视为s1的排列,并且“交换计数”是无关紧要的。
第二步计算将s2转换为s1所需的最小交换次数。这可以通过检查对应于从s1到s2的变换的置换p来完成。例如,如果s1 =“abcde”且s2 =“badce”,那么p =(2,1,4,3,5),意味着位置1包含元素#2,位置2包含元素#1等。置换可以在线性时间内分解为置换周期。示例中的循环是(2,1)(4,3)和(5)。最小交换计数是每个周期所需的交换总数。长度为k的周期需要k-1个交换以“固定”它。因此,交换次数为N-C,其中N是字符串长度,C是周期数。在我们的例子中,结果是2(交换1,2然后3,4)。
现在,这里有两个问题,我觉得我现在太累了,无法解决它们。)
1)我的解决方案假设不重复任何字符,但情况并非总是如此。需要进行一些调整才能正确计算交换计数。
2)我的公式#MinSwaps = N-C需要证明......我没有在网上找到它。
答案 2 :(得分:0)
无论输入数据如何,都应将其存储在2D数组中,键入String。空白空间将被赋予空值(类似于StinePike; s模型,想象空间中的空值)。之后,创建方法transpose非常简单 - 使用null值作为标记跳转到下一列,以列 - 行顺序循环。