我正試圖在hackerrankteam上託管一個簡單的python問題,但我在Python中對列表的計數函數有困難。我已經嘗試了多個測試用例,但是我的計數函數始終返回0.在列表中計算字符串出現
- 目標:計算連續方塊等於天數的出現次數。
這是列表類型的問題嗎?有沒有更簡單的方法來計算一行中的值,而不必檢查有價值的對,然後計算總和?
import sys
def solve(size, squares, day, month):
check = [sum(squares[nums:nums+month]) == day for nums in range(0,len(squares))]
print (check) #Test list output
count = check.count('True')
return count
#Test Cases 1
# size = 6
# squares = [1,1,1,1,1,1]
# day, month = (3,2)
#Output 0
#Test Cases 2
# size = 1
# squares = [4]
# day, month = (4,1)
#Output 1
#Test Cases 3
size = 5
squares = [1,2,1,3,2]
day, month = [3,2]
#Output 2
#Custom User Input:
# size = int(input().strip())
# squares = list(map(int, input().strip().split(' ')))
# day, month = input().strip().split(' ')
# day, month = [int(day), int(month)]
result = solve(size, squares, day, month)
print(result)
你可以使用TRUE;被視爲1和'FALSE'爲0的事實,所以你可以簡單地做'count = sum(sum(squares [nums:nums + month])== day對於範圍內的數字(0,len(squares))); return count' – AChampion
感謝您的幫助!我對Python編程有點新,所以選擇快捷方式對我的學習會有幫助。 –