CodeEval Three Easy Challenges!

student_rec_center

Colorado School of Mines Rec Center

Alright, it’s been awhile I haven’t gotten on coding challenges; been busy with school and such ( nah, still not an enough excuse =/ ). So, here are three easy challenges that I did from CodeEval today. They are Sum of Digits, Multiplication Tables, and Odd Numbers. These are easy ones but I tried using the list comprehension.

Sum of Digits
Summary :
Input : 2345
Output : 14

import sys
test_cases = open(sys.argv[1], 'r').readlines()

def sumofDigit(number):
	summation = 0
	digits = list(number)
	for x in xrange(len(digits)):
		summation = summation + int(digits[x])
	return summation

if test_cases is not None:
	for test in test_cases:
		print sumofDigit(test.rstrip())

else:
	test_cases.close()

Stripping characters in Python
Three methods : strip(), lstrip() and rstrip()

Strip removes any trailing characters such as white space or new line by default. So, lstrip() and rstrip() represents left and right.

exampleStr = "   welcome   "
print spacious.strip()

Output : 'welcome'

exampleStr = "   welcome   "
print spacious.lstrip()

Output : 'welcome   '

exampleStr =  "   welcome   "
print spacious.rstrip()

Output : '   welcome'

Odd Numbers
Summary: list all of odd numbers from 1 to 100

print "\n".join([str(i) for i in xrange(1,100,2)])

So, this is list comprehension. This line of code prints odd numbers per line till 99. First, it create a list from 1 to 99 with 2 increments. Then, I join the whole list using a new line “\n”.

Multiplication Tables
Summary: Draw a multiplication table from 1 to 12
Output:

1   2   3   4   5   6   7   8   9  10  11  12
2   4   6   8  10  12  14  16  18  20  22  24
3   6   9  12  15  18  21  24  27  30  33  36

Here is the attempt:

for x in xrange(1,13):
print ''.join([(i*x >= 10 and i*x <= 99) * (" "+str(i*x)) \ or (i*x >= 100) * (" "+str(i*x)) \
or " "+str(i*x) \
for i in xrange(1,13)])

I used list comprehension in this piece of code. It checks the conditions which return either 1 or 0. So, we can multiply the number with characters to index how many times in the list; in this case, it’s either the number or none. Check out some of the other python usage at previous CodeEval challenge.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>