定义一个函数max_even_digs(..),它接收一个包含数字,字母或特殊符号的字符串作为输入。该函数应返回一个整数,其中包含字符串中所有偶数位的最大值。如果字符串中没有偶数,则该函数应返回-1。
def max_even_digs(st):
digits = "1234567890"
print(len(st))
for i in range(len(st)):
if (i % 2 == 0) and st[i] in digits:
if st[i] > st[i+1]:
solution = st[i]
else:
solution = st[i+1]
return solution
例如,以下代码段片段:
print (max_even_digs("a1b8c9!$4"))
应该产生输出:8
答案 0 :(得分:0)
因为您要将st[i]
与st[i+1]
进行比较,所以您必须只迭代字符串中的第二项到最后一项:
在目前的情况下,你的逻辑也是有缺陷的。您要返回的下一个数字可能不是正确的解决方案:
这是一种方法:
def max_even_digs(st):
max_even = 0
for elt in st:
if elt.isdigit() and int(elt) % 2 == 0:
if int(elt) > max_even:
max_even = int(elt)
return max_even
或者,如果你更喜欢简洁,那就是这个:
def max_even_digs(st):
return max(int(elt) for elt in st if elt.isdigit() and int(elt) % 2 == 0)
答案 1 :(得分:0)
实际上,整数的ASC-II代码在48到57之间。
CHR(48)
'0'
ORD( '9')
57
因此,可以搜索字符串的ASC-II,说
def max_even_digs(astr):
result = -1
for c in astr:
if 48 <= ord(c) < 57 and ord(c) % 2 == 0: # or ord(c) in [48,50,52,54,56]
if int(c) > result:
result = int(c)
return result
答案 2 :(得分:0)
您可以使用以下作为替代解决方案:
<div id="center-text">
<ul class="nav navbar-nav navbar-center" id="nav-center">
<li>
<h3>Text</h3>
</li>
</ul>
</div>