给定一个字符串S,返回一个整数,该整数表示我们可以选择S的非空子字符串的方式数,其中子字符串的所有字符都相同
例如,“zzzyz”应该返回7
“z”的4个实例
“zz”的1个实例
“zzz”的1个实例
“y”的1个实例
我在考虑迭代所有可能的组合,只返回那些all()=为True的组合
def solution(string):
lst = []
for i in string:
for ii in string[1:]:
lst.append((i,ii))
return len([i for i in lst if all(i)])
Tags:
您应该使用外部
for
-loop来获取子字符串-1、2、3、…-和内部for
-循环以创建具有此长度的所有子字符串all()
没有像您预期的那样工作。它不检查元素是否相同,但检查所有元素是否为bool(element)
给出True
,并且所有非空字符串都给出True
您可以使用
set()
检查所有元素是否相同-对于相同的元素set()
将具有长度1
是的,这是一个面试问题,我第一次没有回答,但第二次回答时,我得到了:
相关问题 更多 >
编程相关推荐