我編碼this problem.蟒蛇 - 只包含 'A', 'B' 或 'C'
Maggu子串剛剛加盟在玩中學。他的老師教他A,A,B,B,C,C。他對這些信件非常着迷,現在他只查看只包含這些字母的字符串。但正如我所說他是一個小傢伙,他不能單獨計算這種子串的數量。找到這樣的字符串的數量。
def substrings(string):
for size in range(1, len(string)+1):
for index in range(len(string)-size+1):
yield string[index:index+size]
l = []
for x in range(int(raw_input())):
l.append(raw_input().lower())
not_ = 'defghijklmnopqrstuvwxyz'
for string in l:
count = 0
for substr in substrings(string):
if all(letter not in substr for letter in not_):
count = count + 1
print(count)
我意識到,我們可以減少爲小寫的問題。我編寫了代碼,但對於大型字符串來說效率不高。大的意思是特大字符串。我意識到這是佔用了大量時間的substrings
函數。我如何減少substrings
函數的時間消耗?我可以用其他代碼替換它嗎?
謝謝。
python 2.的一個改進U應該使用'xrange'而不是'range'。這是更大的表現 – qvpham
@julivico好主意。 Python 2中'xrange'的速度遠遠超過'range'。 –
你想用x中的代碼做什麼(int(raw_input())): l.append(raw_input()。lower ))' – qvpham