使用Mergesort根据其长度对字符串进行排序



https://www.hackerearth.com/practice/algorithms/algorithms/sorting/merge-sort/practice-problems/algorithm/algorithm/i-think-its-ist-ist-iss-issy/

合并排序算法工作正常,我能够获得与预期的字符串相同的字符串,但是输出与预期的输出不匹配。

n = int(raw_input())
a = []  # input list
for i in range(n):
    a.append(raw_input().split())
for i in range(n):
    print (' '.join(mergesort(a[i])

在每个新的字符串列表的预期输出中,一开始就存在一个额外的空间,而我的代码在新的字符串列表的开头没有添加任何额外的空间。当仅在两个字符串之间打印一个空间时,为什么会有这种差异?我该如何解决?

我的输出:my_output预期输出:Expect_Output

以下是所需的输出格式,因此我在最后一行中添加了打印功能中的空间。

输出:

输出应包含按字符串长度排序的输入字符串集。必须在两个单词之间打印空白。

您的代码似乎对我有些困惑。您真的想要raw_input().split()吗?我不这么认为。尝试以下操作:

inp = raw_input()
for el in inp.split():
    print(''.join(mergesort(el)))

您获得联接函数旋转。它将数组合并到一个字符串中,将元素与您调用的字符串分开。在您的情况下。如果您想在弦的正面和末端的末端,则必须手动执行此操作。

print(' ', ' '.join(mergesort(a[i])))

这应该可以解决问题。

最新更新