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
def getFinalAmount(initial, res): | |
def helper(total, bet, n): | |
return (total if n > len(res) - 1 or bet > total else | |
helper(total-bet, bet*2, n+1) if res[n] == 'L' else | |
helper(total+bet, 1, n+1)) | |
return helper(initial, 1, 0) |
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
getFinal initial res = helper initial 1 0 | |
where helper total bet n = if n > (length res) - 1 || bet > total. | |
then total | |
else if res !! n == 'L'. | |
then helper (total-bet) (bet*2) (n+1) | |
else helper (total+bet) 1 (n+1) |
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
fun getFinal init res = | |
let | |
fun helper total bet n = | |
case n+1 > size res of | |
true => total | |
| _ => if String.sub (res, n) = #"L" | |
then helper (total-bet) (bet*2) (n+1) | |
else helper (total+bet) 1 (n+1) | |
in | |
helper init 1 0 |
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
def dvr_remote(s, width): | |
x = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_' | |
rows = [x[i:i+width] for i in range(0, 27, width)] | |
s = 'A' + s.replace(' ', '_') | |
DIC = dict((char, (i, pos)) | |
for i in range(len(rows)) | |
for (pos, char) in enumerate(rows[i])) | |
def helper(current, next): | |
row1, col1 = DIC[current] |
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
""" | |
A portmanteau word is a blend of two or more words, like 'mathelete', | |
which comes from 'math' and 'athelete' | |
rules are: a portmanteau must be composed of three non-empty pieces, | |
start+mid+end, | |
'adolescented' comes from | |
'adolescent','scented', with | |
start+mid+end='adole'+'scent'+'ed'. |
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
""" | |
this is final exam problem 4 from udacity CS212 | |
simple description from me | |
| | | | | | | | | | | | | | | | | |
| G G . . . Y | | 9 10 11 12 13 14 | | |
| P . . B . Y | | 17 18 19 20 21 22 | | |
| P * * B . Y @ | 25 26 27 28 29 30 31 | |
| P . . B . . | | 33 34 35 36 37 38 | | |
| O . . . A A | | 41 42 43 44 45 46 | |
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
"""You will write code to solve the following logic puzzle: | |
1. The person who arrived on Wednesday bought the laptop. | |
2. The programmer is not Wilkes. | |
3. Of the programmer and the person who bought the droid, | |
one is Wilkes and the other is Hamming. | |
4. The writer is not Minsky. | |
5. Neither Knuth nor the person who bought the tablet is the manager. | |
6. Knuth arrived the day after Simon. | |
7. The person who arrived on Thursday is not the designer. |
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
#each letter's points | |
POINTS = dict(A=1, B=3, C=3, D=2, E=1, F=4, G=2, H=4, I=1, J=8, K=5, L=1, M=3, N=1, O=1, P=3, Q=10, R=1, S=1, T=1, U=1, V=4, W=4, X=8, Y=4, Z=10, _=0) | |
X, Y = (1, 0), (0, 1) # horizontal, vertical | |
class anchor(set): | |
" squares where word can be place, is either right next to a word, or * in the middle " | |
LETTERS = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ') | |
mnx, moab = anchor(list('MNX')), anchor(list('MOAB')) | |
ANY = anchor(LETTERS) |
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
""" | |
Given k and n, return a list of all the positive integers less than n | |
such that the sum of the kth powers of their individual digits equals the integer itself. | |
For example, with k=3 and n=1000, one of the numbers we would return in the list would be 371, | |
because 371 = 3^3 +7^3 + 1^3 = 27 + 343 + 1. (This problem inspired by Project Euler.) | |
powersum(1, 10) → [1, 2, 3, 4, 5, 6, 7, 8, 9] | |
powersum(2, 100) → [1] | |
powersum(3, 1000) → [1, 153, 370, 371, 407]""" |
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
""" | |
The Towers of Hanoi is a puzzle where there is a pyramid of disks, each one | |
smaller than the one below it, all placed on to one of three rods. The puzzle | |
is to move all the disks from the left rod to the right rod, possibly using the | |
middle rod as necessary. You can only move one disk at a time, onto another | |
rod, but never moving a disk onto a disk that is smaller. Return a list of the | |
moves in the form[1, 'L', 'M'], which means to move disk number 1, the smallest |