subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
94
users/wpcarro/scratch/facebook/scratch.py
Normal file
94
users/wpcarro/scratch/facebook/scratch.py
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
# This is a scratch pad for randomly selected questions
|
||||
|
||||
# def char_and_rest(i, xs):
|
||||
# return xs[i], xs[:i] + xs[i+1:]
|
||||
|
||||
# def perms(xs):
|
||||
# if len(xs) == 1:
|
||||
# return [xs]
|
||||
# result = []
|
||||
# for i in range(len(xs)):
|
||||
# c, rest = char_and_rest(i, xs)
|
||||
# for perm in perms(rest):
|
||||
# result.append(c + ''.join(perm))
|
||||
# return result
|
||||
|
||||
# print(perms(list("woah")))
|
||||
|
||||
# def f(take_out, dine_in, served):
|
||||
# j, k = 0, 0
|
||||
# for i in range(len(served)):
|
||||
# if j < len(take_out) and served[i] == take_out[j]:
|
||||
# j += 1
|
||||
# elif k < len(dine_in) and served[i] == dine_in[k]:
|
||||
# k += 1
|
||||
# else:
|
||||
# return False
|
||||
# if j < len(take_out) or k < len(dine_in):
|
||||
# return False
|
||||
# return True
|
||||
|
||||
# take_out = [17, 8, 24]
|
||||
# dine_in = [12, 19, 2]
|
||||
# served = [17, 8, 12, 19, 24, 2]
|
||||
# print(f(take_out, dine_in, served))
|
||||
|
||||
# def match(a, b):
|
||||
# if a == '{':
|
||||
# return b == '}'
|
||||
# if a == '[':
|
||||
# return b == ']'
|
||||
# if a == '(':
|
||||
# return b == ')'
|
||||
# return False
|
||||
|
||||
# def f(xs):
|
||||
# s = []
|
||||
# for c in xs:
|
||||
# if c in {'{', '[', '('}:
|
||||
# s.append(c)
|
||||
# elif c in {'}', ']', ')'}:
|
||||
# opener = s.pop()
|
||||
# if not match(opener, c):
|
||||
# return False
|
||||
# return len(s) == 0
|
||||
|
||||
# assert f("{[]()}")
|
||||
# assert f("{[(])}") == False
|
||||
# assert f("{[}") == False
|
||||
# print("Success!")
|
||||
|
||||
# def valid_bst(node):
|
||||
# lhs = max_bst_value(node.left) if node.left else float('-inf')
|
||||
# rhs = min_bst_value(node.right) if node.right else float('inf')
|
||||
|
||||
# return and([
|
||||
# lhs <= node.value,
|
||||
# rhs > node.value,
|
||||
# valid_bst(node.left),
|
||||
# valid_bst(node.right),
|
||||
# ])
|
||||
|
||||
import random
|
||||
import math
|
||||
|
||||
def shuffle(xs):
|
||||
n = len(xs)
|
||||
for i in range(n - 1):
|
||||
j = random.randint(i + 1, n - 1)
|
||||
xs[i], xs[j] = xs[j], xs[i]
|
||||
return xs
|
||||
|
||||
def as_card(i):
|
||||
if i not in range(1, 53):
|
||||
raise Exception("Not a card")
|
||||
# 1
|
||||
suit = ['Hearts', 'Clubs', 'Diamonds', 'Spades'][math.floor((i - 1) / 13)]
|
||||
n = ['Ace',2,3,4,5,6,7,8,9,10,'Jack','Queen','King'][(i - 1) % 13]
|
||||
return '{} of {}'.format(n, suit)
|
||||
|
||||
xs = list(range(1, 53))
|
||||
print(xs)
|
||||
shuffle(xs)
|
||||
for x in xs:
|
||||
print(as_card(x))
|
||||
Loading…
Add table
Add a link
Reference in a new issue