Add Ramp's technical assessment
More technical interviews
This commit is contained in:
parent
b70dda5dcb
commit
077b0fbcd9
2 changed files with 116 additions and 0 deletions
29
assessments/ramp/solution-emacs-elixir-format.py
Normal file
29
assessments/ramp/solution-emacs-elixir-format.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
# The file '2010.census.txt' contains summary statistics from the 2010 United
|
||||
# States census including household income. The data is in an unspecified
|
||||
# format.
|
||||
|
||||
# Find the average of the column called:
|
||||
|
||||
# 'MEDIAN HOUSEHOLD INCOME'
|
||||
|
||||
# Ideally the solution should be a command line script, of the form:
|
||||
|
||||
# $ ./solution [options] [file...]
|
||||
|
||||
# The solution may be written in any language, Python is preferred but not
|
||||
# required.
|
||||
|
||||
# Google, stack overflow, etc. usage is allowed.
|
||||
|
||||
import requests
|
||||
|
||||
url = "https://assets.tryramp.com/interview/census/2010.census.txt"
|
||||
|
||||
def main():
|
||||
res = requests.get(url)
|
||||
if res.status not in {200}:
|
||||
raise Exception("Unexpected status code: {}".format(res.status_code))
|
||||
# download the content
|
||||
# parse row
|
||||
# select 'MEDIAN HOUSEHOLD INCOME' column
|
||||
pass
|
87
assessments/ramp/solution.py
Normal file
87
assessments/ramp/solution.py
Normal file
|
@ -0,0 +1,87 @@
|
|||
# The file '2010.census.txt' contains summary statistics from the 2010 United
|
||||
# States census including household income. The data is in an unspecified
|
||||
# format.
|
||||
|
||||
# Find the average of the column called:
|
||||
|
||||
# 'MEDIAN HOUSEHOLD INCOME'
|
||||
|
||||
# Ideally the solution should be a command line script, of the form:
|
||||
|
||||
# $ ./solution [options] [file...]
|
||||
|
||||
# The solution may be written in any language, Python is preferred but not
|
||||
# required.
|
||||
|
||||
# Google, stack overflow, etc. usage is allowed.
|
||||
|
||||
import requests
|
||||
import csv
|
||||
|
||||
url = "https://assets.tryramp.com/interview/census/2010.census.txt"
|
||||
column = 'MEDIAN HOUSEHOLD INCOME'
|
||||
columns = [
|
||||
'CENSUS YEAR',
|
||||
'TRACT',
|
||||
'BLOCK GROUP',
|
||||
'FIPS ID',
|
||||
'TOTAL POPULATION',
|
||||
'POPULATION WHITE',
|
||||
'POPULATION BLACK',
|
||||
'POPULATION ASIAN',
|
||||
'POPULATION OTHER',
|
||||
'POPULATION AMERICAN INDIAN',
|
||||
'POPULATION PACIFIC ISLANDER',
|
||||
'POPULATION ONE RACE',
|
||||
'POPULATION MULTI RACE',
|
||||
'POPULATION 25 OLDER',
|
||||
'MEDIAN AGE',
|
||||
'MEDIAN HOUSEHOLD INCOME',
|
||||
'HIGH SCHOOL MALE',
|
||||
'HIGH SCHOOL MORE MALE',
|
||||
'COLLEGE 1 YR LESS MALE',
|
||||
'COLLEGE 1 YR MORE MALE',
|
||||
'ASSOCIATES DEGREE MALE',
|
||||
'BACHELORS DEGREE MALE',
|
||||
'MASTERS DEGREE MALE',
|
||||
'PROFESSIONAL DEGREE MALE',
|
||||
'DOCTORAL DEGREE MALE',
|
||||
'HIGH SCHOOL FEMALE',
|
||||
'HIGH SCHOOL MORE FEMALE',
|
||||
'COLLEGE 1 YR LESS FEMALE',
|
||||
'COLLEGE 1 YR MORE FEMALE',
|
||||
'ASSOCIATES DEGREE FEMALE',
|
||||
'BACHELORS DEGREE FEMALE',
|
||||
'MASTERS DEGREE FEMALE',
|
||||
'PROFESSIONAL DEGREE FEMALE',
|
||||
'DOCTORAL DEGREE FEMALE',
|
||||
'PERCENT 25 YR OVER HIGH SCHOOL MORE',
|
||||
'HOUSING UNITS',
|
||||
'OCCUPIED HOUSING UNITS',
|
||||
'OWNER OCCUPIED HOUSING',
|
||||
'RENTER OCCUPIED HOUSING',
|
||||
'PERCENT OWNER OCCUPIED',
|
||||
'PERCENT RENTER OCCUPIED',
|
||||
'MEDIAN HOUSE VALUE OWNER OCCUPIED',
|
||||
'MEDIAN YEAR BUILT',
|
||||
'VACANCY RATES',
|
||||
]
|
||||
|
||||
|
||||
def average(xs):
|
||||
return sum(xs) / len(xs)
|
||||
|
||||
|
||||
def parse_body(body):
|
||||
return list(csv.DictReader(body.split('\n')[1:], delimiter='|', fieldnames=columns))
|
||||
|
||||
|
||||
def main():
|
||||
res = requests.get(url)
|
||||
if res.status_code not in {200}:
|
||||
raise Exception("Unexpected status code: {}".format(res.status_code))
|
||||
return average([int(d.get(column))
|
||||
for d in parse_body(res.text)
|
||||
if int(d.get(column)) >= 0])
|
||||
|
||||
print(main())
|
Loading…
Reference in a new issue