CDE
This commit is contained in:
parent
518da4a923
commit
764da6cbbb
6144 changed files with 83610 additions and 11 deletions
9
Task/Equilibrium-index/Python/equilibrium-index-1.py
Normal file
9
Task/Equilibrium-index/Python/equilibrium-index-1.py
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
def eqindex2Pass(data):
|
||||
"Two pass"
|
||||
suml, sumr, ddelayed = 0, sum(data), 0
|
||||
for i, d in enumerate(data):
|
||||
suml += ddelayed
|
||||
sumr -= d
|
||||
ddelayed = d
|
||||
if suml == sumr:
|
||||
yield i
|
||||
6
Task/Equilibrium-index/Python/equilibrium-index-2.py
Normal file
6
Task/Equilibrium-index/Python/equilibrium-index-2.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
def eqindexMultiPass(data):
|
||||
"Multi pass"
|
||||
for i in range(len(data)):
|
||||
suml, sumr = sum(data[:i]), sum(data[i+1:])
|
||||
if suml == sumr:
|
||||
yield i
|
||||
4
Task/Equilibrium-index/Python/equilibrium-index-3.py
Normal file
4
Task/Equilibrium-index/Python/equilibrium-index-3.py
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
def eqindexMultiPass(s):
|
||||
return [i for i in xrange(len(s)) if sum(s[:i]) == sum(s[i+1:])]
|
||||
|
||||
print eqindexMultiPass([-7, 1, 5, 2, -4, 3, 0])
|
||||
9
Task/Equilibrium-index/Python/equilibrium-index-4.py
Normal file
9
Task/Equilibrium-index/Python/equilibrium-index-4.py
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
from collections import defaultdict
|
||||
|
||||
def eqindex1Pass(data):
|
||||
"One pass"
|
||||
l, h = 0, defaultdict(list)
|
||||
for i, c in enumerate(data):
|
||||
l += c
|
||||
h[l * 2 - c].append(i)
|
||||
return h[l]
|
||||
10
Task/Equilibrium-index/Python/equilibrium-index-5.py
Normal file
10
Task/Equilibrium-index/Python/equilibrium-index-5.py
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
f = (eqindex2Pass, eqindexMultiPass, eqindex1Pass)
|
||||
d = ([-7, 1, 5, 2, -4, 3, 0],
|
||||
[2, 4, 6],
|
||||
[2, 9, 2],
|
||||
[1, -1, 1, -1, 1, -1, 1])
|
||||
|
||||
for data in d:
|
||||
print("d = %r" % data)
|
||||
for func in f:
|
||||
print(" %16s(d) -> %r" % (func.__name__, list(func(data))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue