1

在过去几个月在 Matlab 工作后,我正试图转向 Python。这可能是一个简单的问题,但我还没有在搜索 StackOverflow 或 Google 中找到它。

我正在处理的 InterviewStreet 问题非常简单。这是一个插入排序问题,检查需要在列表中切换多少次不同的数字。他们给我们一个 raw_input() 格式如下:

2

5

1 1 1 2 2

5

2 1 3 1 2

第一行是我需要排序的列表的数量,所有后续的偶数行是我需要排序的列表中的数字数量,接下来的奇数行是需要排序的实际列表。

我一开始就被卡住了。我做过的最好的是

STDOUT = raw_input()

打印标准输出

由于某种原因,它只给出了所有测试用例中的第一个整数(对于这个,它是 2)。

这对您来说可能已经很明显了,但是我如何使用 raw_input() 访问其余的数字?

谢谢!

PS请不要帮我解决剩下的问题,我真的想自己尝试解决:)

4

2 回答 2

0

您需要raw_input()为每一行调用一次,如下所示:

N = int(raw_input())    # first line is number of lists

for i in xrange(N):
    num_in_list = int(raw_input())  # read the number of items in list N
    list = raw_input().split()      # read list N

    print num_in_list, list         # print list N

应输出以下内容:

5 ['1', '1', '1', '2', '2']
5 ['2', '1', '3', '1', '2']

于 2012-07-28T04:59:38.223 回答
0

我正在解决同样的问题,这是解决方案raw_input()

num_testcases = int(raw_input())
assert 1 <= num_testcases <= 5
for testcase in range(num_testcases):
    num_elems = int(raw_input())
    assert 1 <= num_elems <= 100000
    elems = map(int, raw_input().split())
    assert all(map(lambda x: 1 <= x <= 1000000, elems))
    insertion_sort(elems)

希望它会帮助你。

于 2012-11-04T21:13:54.590 回答