Given a string of integers, return the number of odd-numbered substrings that can be formed. 

For example, in the case of `"1341"`, they are `1, 1, 3, 13, 41, 341, 1341`, a total of `7` numbers. 

`solve("1341") = 7`.  See test cases for more examples.

Good luck!

If you like substring Katas, please try 

[Longest vowel chain](https://www.codewars.com/kata/59c5f4e9d751df43cf000035)

[Alphabet symmetry](https://www.codewars.com/kata/59d9ff9f7905dfeed50000b0)

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Starter code: def solve(s):
	

Solutions:
def solve(s):
	return sum((i + 1 for (i, d) in enumerate(list(s)) if d in '13579'))


def solve(s):
	return sum((int(c) % 2 for i in range(len(s)) for c in s[i:]))


import itertools

def solve(s):
	return sum([i + 1 for (i, d) in enumerate(s) if d in '13579'])


def solve(s):
	return sum([idx + 1 for (idx, digit) in enumerate(s) if int(digit) % 2 != 0])


def solve(s):
	return sum((i for (i, n) in enumerate(s, 1) if int(n) % 2))


def solve(s):
	return sum((i for (i, x) in enumerate(s, 1) if x in '13579'))


def solve(s):
	return sum((len(s) - i for (i, j) in enumerate(s[::-1]) if int(j) % 2 == 1))


from itertools import combinations

def solve(s):
	res = [s[x:y] for (x, y) in combinations(list(range(len(s) + 1)), r=2)]
	re = [int(x) for x in res]
	r = [x for x in re if x % 2 != 0]
	return len(r)


solve = lambda Q: sum((1 + F if 1 & int(V) else 0 for (F, V) in enumerate(Q)))