108年地方特考四等程式設計概要

四、請寫出以下 Python 程式的執行結果。(15分)

    def secret(nums, target):

        seen = [ ]

        for index, num in enumerate(nums):

            other = target-num

            if other in seen:

                return [seen[other], index]

            else:

                seen[num] = index

        return [ ]

    print(secret([1, 3, 5], 4))

    print(secret([2, 3 , 6, 8, 10], 16))

    print(secret([1, 3, 5], 7))

答:

題目有誤,將 seen = [ ] 修改為 seen ={ }

def secret(nums, target):

    seen ={ }

    for index, num in enumerate(nums):

        other = target-num

        if other in seen:

            return [seen[other], index]

        else:

            seen[num] = index

    return [ ]

print(secret([1, 3, 5], 4))

print(secret([2, 3 , 6, 8, 10], 16))

print(secret([1, 3, 5], 7))

執行結果:

[0, 1]

[2, 4]

[ ]

說明:

def secret(nums, target):

    seen = [ ]

    for index, num in enumerate(nums):

        other = target-num

        if other in seen:

            return [seen[other], index]

        else:

            seen[num] = index

    return [ ]

1.secret([1, 3, 5], 4)

  index = 0, num = 1

  other = 4-1 = 3

  seen[1] = 0

  index = 1, num = 3

  other = 4-3 = 1

  return [seen[1], 1] = > return [0, 1]

2.secret([2, 3 , 6, 8, 10], 16)

  index = 0, num = 2

  other = 16-2 = 14

  seen[1] = 0

  index = 1, num = 3

  other = 16-3 = 13

  seen[3] = 1

  index = 2, num = 6

  other = 16-6 = 10

  seen[6] = 2

  index = 3, num = 8

  other = 16-8 = 8

  seen[8] = 3

  index = 4, num = 10

  other = 16-10 = 6

  return [seen[6], 4] = > return [2, 4]

3.secret([1, 3, 5], 7)

  index = 0, num = 1

  other = 7-1 = 6

  seen[1] = 0

  index = 1, num = 3

  other = 7-3 = 4

  seen[3] = 1

  index = 2, num = 5

  other = 7-5 = 2

  seen[5] = 2

  return [ ]

 

arrow
arrow
    文章標籤
    地方特考四等程式設計概要
    全站熱搜

    jacksaleok 發表在 痞客邦 留言(0) 人氣()