2013-06-06 37 views
0

考慮我有一個數字,如「579700068780000000」。我只想計算編號後面的0。所以對於上面的數字,答案將是7而不是10。我完全不知道我將如何做到這一點。只計算數字/字符串的尾部元素

我試過使用.count函數,但它返回數字中的所有0。

注:這是codechef實踐挑戰的一部分Codechef factorial problem

回答

5

你可以做一些愚蠢的,如:itertools.takewhile

len(number) - len(number.rstrip('0')) 

或者,你可以使用:

sum(1 for _ in itertools.takewhile(lambda x: x=='0',reversed(string)) 

但是,這可能會比低效的情況。

+0

你打我吧:) – karthikr

+0

爲什麼那麼傻?聽起來像最好的解決方案。 – Elazar

+0

@mgilson - 第一個解決方案非常棒!我不想進入itertools,因爲我對基礎知識不太瞭解 –