2011-10-13 43 views

回答

2

列表理解給出在右邊有兩個相同字母的字母。我們只是把結果列表的長度:

s = "evening" 
ans = len([x for x in xrange(len(s)-2) if s[x] == s[x+2]]) 
print ans 
+0

謝謝這正是我試圖想的! – Slowbro

+0

@MikePennington。我看着你對PyNEwbies的評論。在s =「eveeeninnnong」的情況下輸出5的問題是什麼?據我所知,這是正確的。 – oadams

0

我很想看到有人比我更專家把它變成一個LC,但我的基本sollution將

zz='evening' 
for numb, letter in enumerate(zz): 
if numb+2==len(zz): 
    break 
if letter==zz[numb+2]: 
    count+=1 

看到小李的答案,想着它這個怎麼樣,如果輸入的是一個清單

foo = ['e', 'v', 'e', 'n', 'i', 'n', 'g'] 
new=[item for numb, item in enumerate(foo[0:-2]) if item==foo[numb+2]] 
answer=len(new) 

我傻,我也可以用一個字符串的工作好了後,我覺得這仍然清潔

testString='evening' 
new=[letter for numb, letter in enumerate(testString[0:-2]) if letter==testString[numb+2]] 
ans=len(new) 
1
s='evening' 
print len([x for x,y in zip(s, s[2:]) if x==y]) 

輸出:

2 
+0

不錯。十分優雅。 – oadams

相關問題