有两种不同的排序方式。但是得到错误的输出

时间:2018-12-10 18:19:48

标签: python python-3.x list data-structures list-comprehension

下面给出的

是检查列表是否已排序的两种不同方式。

方法1

ServiceInstance serviceInstance =  authentification.connexionExsi();
Folder rootFolder = serviceInstance.getRootFolder();
System.out.println("Host"+new InventoryNavigator(rootFolder).searchManagedEntity("HostSystem","rabatos.Home").getName());

方法2

for i in range(len(inord) - 2):
    if (inord[i] >= inord[i + 1]):
        return False
return True

这两种方法是相同的,但是第二种方法在某些情况下会失败,那怎么会发生呢?

以上问题是参考HackerRank的问题提出的。检查以下链接以获取完整的代码: https://www.hackerrank.com/challenges/is-binary-search-tree/forum/comments/522743

1 个答案:

答案 0 :(得分:0)

这里有两个问题:

  1. 第一行中的范围不比较最后两个元素。应该是-1而不是-2
  2. 如果两个相邻元素相同,则第一个代码块返回False。在另一种方法中,排序不会更改相同元素的顺序,因此最后返回True。您要检查单调增加的值还是严格单调增加的值?

有帮助吗?