问题描述:
You have a string that consist only of digits. You need to find how many zero digits ("0") are at the beginning of the given string.(一共有多少个0在字符串前面)
Input: A string, that consist of digits.
Output: An Int.
def beginning_zeros(number: str) -> int:
# your code here
return 0
if __name__ == '__main__':
print("Example:")
print(beginning_zeros('100'))
# These "asserts" are used for self-checking and not for an auto-testing
assert beginning_zeros('100') == 0
assert beginning_zeros('001') == 2
assert beginning_zeros('100100') == 0
assert beginning_zeros('001001') == 2
assert beginning_zeros('012345679') == 1
assert beginning_zeros('0000') == 4
print("Coding complete? Click 'Check' to earn cool rewards!")
要求是输入是一个字符串,输出是一个整数。然后统计一共有多少个0出现在前面。
for循环历遍整个字符串,遇到0就统计加一,遇到非0就返回统计。
def beginning_zeros(number: str) -> int:
# your code here
c=0
for i in number:
if i=='0':
c+=1
else:
return c
return c
其他解决方案,
def beginning_zeros(number: str) -> int:
return len(number) - len(number.lstrip('0'))
这个方法也很好,把整个字符串的长度减去,去掉左边所有0之后的字符串的长度。
str.
lstrip
([chars])
返回原字符串的副本,移除其中的前导字符(就是左边的字符,lstrip就是leftstrip左边剥离)。 chars 参数为指定要移除字符的字符串。 如果省略或为 None
,则 chars 参数默认移除空白符。 实际上 chars 参数并非指定单个前缀;而是会移除参数值的所有组合