Last active
August 29, 2015 14:01
-
-
Save rioshen/5627e45cc406e11c63e3 to your computer and use it in GitHub Desktop.
CodingBat.com, python solutions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
__author__ = 'Rio' | |
def sleep_in(weekday, vacation): | |
return True if not weekday or vacation else False | |
def monkey_trouble(a_smile, b_smile): | |
return a_smile == b_smile | |
def sum_double(a, b): | |
return a + b if a != b else (a + b) * 2 | |
def diff21(n): | |
return abs(n - 21) if n < 21 else 2 * abs(n - 21) | |
def count_evens(nums): | |
return len([val for val in nums if val % 2 == 0]) | |
def big_diff(nums): | |
return max(nums) - min(nums) | |
def centered_average(nums): | |
n, mid = len(nums), len(nums) // 2 | |
nums.sort() | |
if n % 2 != 0: | |
return nums[mid] | |
else: | |
return (nums[mid - 1] + nums[mid]) // 2 | |
def near_hundred(n): | |
return True if abs(n - 100) <= 10 or abs(n - 200) <= 10 else False | |
def pos_neg(a, b, negative): | |
return a < 0 and b < 0 if negative else a * b < 0 | |
def not_string(str): | |
return str if str.startswith('not') else 'not ' + str | |
def makes10(a, b): | |
return True if a == 10 or b == 10 or a + b == 10 else False | |
def missing_char(str, n): | |
return str[:n] + str[n + 1:] | |
def front_back(str): | |
return str[-1] + str[1:-1] + str[0] if len(str) > 1 else str | |
def front3(str): | |
return str[:3] * 3 if len(str) >= 3 else str * 3 | |
def string_times(str, n): | |
return str * n | |
def front_times(str, n): | |
return str[:3] * n if len(str) >= 3 else str * n | |
def string_bits(str): | |
return ''.join([str[i] for i in range(len(str)) if i % 2 == 0]) | |
def string_splosion(str): | |
return ''.join([str[:i] for i in range(len(str)+1)]) | |
def last2(str): | |
if len(str) < 2: return 0 | |
count, last = 0, str[-2:] | |
for i in range(len(str) - 2): | |
sub = str[i: i+2] | |
if sub == last: count += 1 | |
return count | |
def string_match(a, b): | |
count, length = 0, min(len(a), len(b)) | |
for i in xrange(length-1): | |
if a[i] == b[i] and a[i+1] == b[i+1]: count += 1 | |
return count | |
def array_count9(nums): | |
return len([val for val in nums if val == 9]) | |
def array_front9(nums): | |
return 9 in nums and nums.index(9) <= 3 | |
def first_last6(nums): | |
return nums[0] == 6 or nums[-1] == 6 | |
def array123(nums): | |
return '123' in ''.join(map(str, nums)) | |
def hello_name(name): | |
return 'Hello ' + name + '!' | |
def make_abba(a, b): | |
return a + b * 2 + a | |
def make_tags(tag, word): | |
return '<{0}>{1}</{0}>'.format(tag, word) | |
def make_out_word(out, word): | |
return '{0}{1}{2}'.format(out[:2], word, out[2:]) | |
def extra_end(str): | |
if len(str) >= 2: return str[-2:] * 3 | |
def first_two(str): | |
return str[:2] if len(str) >= 2 else str | |
def first_half(str): | |
return str[:len(str)//2] | |
def without_end(str): | |
return str[1:-1] if len(str) > 2 else '' | |
def combo_string(a, b): | |
return a+b+a if len(a) < len(b) else b+a+b | |
def non_start(a, b): | |
if len(a) >= 1 and len(b) >= 1: | |
return a[1:]+b[1:] | |
def left2(str): | |
return str[2:]+str[:2] if len(str) > 2 else str | |
def sum3(nums): | |
return sum(nums) | |
def same_first_last(nums): | |
return nums[0] == nums[-1] if len(nums) >= 1 else False | |
def common_end(a, b): | |
return a[0] == b[0] or a[-1] == b[-1] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment