Challenges

Reddit challenges in python language.

Files Code and Result

challenge1_easy

challenge2_easy

challenge3_easy

challenge4_easy

challenge5_easy

challenge6_easy

challenge7_easy

challenge8_easy

challenge9_easy

challenge10_easy

challenge11.easy

challenge12_easy

challenge13_easy

challenge14_easy

challenge15_easy

challenge16_easy

challenge17_easy

challenge18_easy

challenge19_easy

challenge20_easy

challenge21_easy

challenge22_easy

challenge23_easy

challenge25_easy

challenge26_easy

challenge27_easy

challenge28_easy

challenge29_easy

challenge30_easy

challenge31_easy

challenge32_easy

challenge33_easy

challenge34_easy

challenge35_easy

challenge36_easy

challenge37_easy

challenge38_easy

challenge39_easy

challenge40_easy

challenge41_easy

challenge42_easy

challenge44_easy

challenge45_easy

challenge46_easy

challenge47_easy

challenge48_easy

challenge49_easy

challenge50_easy

challenge51_easy

challenge52_easy

challenge53_easy

challenge54_easy

challenge55_easy

challenge56_easy

challenge57_easy

challenge58_easy

challenge59_easy

challenge60_easy

challenge61_easy

challenge62_easy

challenge63_easy

challenge64_easy

challenge65_easy

challenge66_Dev

challenge66_easy

challenge67_easy

challenge68_easy

challenge69_easy

challenge69_easyBonus

challenge70_easy

challenge71_easy.py

challenge72_easy

challenge73_easy

challenge74_easy

challenge76_easy

challenge77_easy

challenge79_easy

challenge80_easyone

challenge82_easy

challenge83_easy

challenge84_easy

challenge85_easy

challenge85_easybonus

challenge86_easy

challenge87_easy

challenge88_easy

challenge88_easybonus

challenge89_easy

challenge91_easy

challenge92_easy

challenge93_easy

challenge94_easy

challenge95_easy

challenge96_easy

challenge97_easy

challenge98_easy

challenge99_easy

challenge100_easy

challenge100_easybonus

challenge101_easy

challenge101_easybonus

challenge102_easy

challenge103_easy

challenge104_easy

challenge105_easy

challenge106_easy

challenge130_easy

challenge143_easy

challenge146_easy

challenge148_easy

challenge149_easy

challenge153_easy

challenge154_easy

challenge158_easy

challenge158_easybonus

challenge159_easy

challenge160_easy

challenge169_easy

challenge169_easybonus

challenge172_easy

challenge174_easy

challenge175_easy

challenge177_easy

challenge180_easy

challenge181_easy

challenge185_easy

challenge192_easy

challenge193_easy

challenge197_easy

challenge198_easy

challenge199_easy

challenge201_easy

challenge202_easy

challenge203_easy

challenge204_easy

challenge204_easyBonus

challenge205_easy

challenge205_easyBonu

challenge206_easy

challenge208_easy

challenge210_easy

challenge211_easy

challenge212_easy

challenge212_easybonus

challenge213_easy

challenge214_easy

challenge215_easy

challenge216_easy

challenge217_easy

challenge218_easy

challenge218_easyBonus1

challenge218_easyBunus2

challenge219_easy

challenge220_easy.py

challenge221_easy

challenge221_easy

challenge222_easy

challenge222_easy.py

challenge223_easy

challenge226_easy

challenge226_easy

challenge228_easy.py

challenge228_easydev

challenge229_easy

challenge229_easybonus.py

challenge232_easy

challenge232_easy

challenge232_easybonus

challenge232_easybonus

challenge234_easy

challenge234_easybonus

challenge235_easy

challenge236_easy

challenge237_easy

challenge238_easy

challenge238_easybonus

challenge239_easy

challenge240_easy

challenge242_easy

challenge242_easy

challenge242_easyBonus

challenge243_easy

challenge245_easy

challenge245_easyBonus

challenge246_easy

challenge247_easy

challenge249_easy

challenge252_easy

challenge254_easy

challenge255_easy

challenge270_easy

challenge284_easy

challenge286_easy

challenge287_easy

challenge288_easy

challenge290_easy

challenge290_easybonus

challenge291_easy

challenge291_easybonus

challenge38_easy

''' Implement Dijkstra's algorithm in any way you can :)
'''

#-- nodes ------------------
a = 0
b = 1000
c = 1000
d = 1000
e = 1000
# -- dict of edge paths -----------
dikt = {}
dikt['ab'] = 2
dikt['ac'] = 4
dikt['bd'] = 3
dikt['cd'] = 6
dikt['ce'] = 6
dikt['de'] = 3
print(dikt)

#-- list of nodes -------------------------
lst =[a, b, c, d, e]
#-- starting node is a ----------------------------------------------
#-- find edges that connect to node a  and update values of nodes ---
for key, value in dikt.items():
    if key.startswith('a') and key.endswith('b'):
        b = min(b,(a + value))
    elif key.startswith('a') and key.endswith('c'):
        c = min(c,(a + value))
    elif key.startswith('b') and key.endswith('d'):
        d = min(d,(b + value))
    elif key.startswith('c') and key.endswith('d'):
        d = min(d,(c + value))
    elif key.startswith('c') and key.endswith('e'):
        e = min(e,(c + value))
    elif key.startswith('d') and key.endswith('e'):
        e = min(e,(d + value))

#-- update node list -----
lst =[a, b, c, d, e]
print(' lst: ', lst)
a = 1000
lst = [a, b, c, d, e]
#-- find lowest node left ------------
#-- extract the next node ---------
lo_node = min(lst)
print(lo_node)
if lo_node == a:
    a = lo_node
elif lo_node == b:
    b = lo_node
    for key, value in dikt.items():
        if key.startswith('b') and key.endswith('c'):
            c = min(d,(b + value))
        elif key.startswith('b') and key.endswith('d'):
            d = min(d,(b + value))
        elif key.startswith('b') and key.endswith('e'):
            e = min(e,(b + value))
elif lo_node == c:
    c = lo_node
    for key, value in dikt.items():
        if key.startswith('c') and key.endswith('d'):
            d = min(d,(c + value))
        elif key.startswith('c') and key.endswith('e'):
            e = min(e,(c + value))
elif lo_node == d:
    d = lo_node
    for key, value in dikt.items():
        if key.startswith('d') and key.endswith('c'):
            c = min(c,(d + value))
        elif key.startswith('d') and key.endswith('e'):
            e = min(e,(d + value))
else:
    lo_node == e
    e = lo_node

#-- update lst -----------------------------
lst =[a, b, c, d, e]
print(lst)
b  = 1000
lst = [a, b, c, d, e]
print(lst)
#-- pick lowest value in list -----------------------
lo_node = min(lst)
print(lo_node)
if lo_node == a:
    a = lo_node
elif lo_node == b:
    b = lo_node
    for key, value in dikt.items():
        if key.startswith('b') and key.endswith('d'):
            d = min(d,(b + value))
        elif key.startswith('b') and key.endswith('e'):
            d = min(d,(c + value))
elif lo_node == c:
    c = lo_node
    for key, value in dikt.items():
        if key.startswith('c') and key.endswith('d'):
            d = min(d,(c + value))
        elif key.startswith('c') and key.endswith('e'):
            e = min(e,(c + value))
else:
    lo_node == d
    d = lo_node

lst = [a, b, c, d, e]
print(lst)
#-- now check b -------------------------

#-- pick lowest value in list -----------------------
lo_node = min(lst)
print(lo_node)
if lo_node == a:
    a = lo_node
elif lo_node == b:
    b = lo_node
    for key, value in dikt.items():
        if key.startswith('b') and key.endswith('d'):
            d = min(d,(b + value))
        elif key.startswith('b') and key.endswith('e'):
            d = min(d,(c + value))
elif lo_node == c:
    c = lo_node
    for key, value in dikt.items():
        if key.startswith('c') and key.endswith('d'):
            d = min(d,(c + value))
        elif key.startswith('c') and key.endswith('e'):
            d = min(d,(c + value))
else:
    lo_node == d
    d = lo_node
b = 1000
lst = [a, b, c, d, e]
print(lst)
print('The shortest route between node a and node e is {0} units.'.format(lst[-1]))

Result

{'ac': 4, 'de': 3, 'cd': 6, 'ce': 6, 'ab': 2, 'bd': 3}
 lst:  [0, 2, 4, 5, 10]
2
[1000, 2, 4, 5, 10]
[1000, 1000, 4, 5, 10]
4
[1000, 1000, 4, 5, 10]
4
[1000, 1000, 4, 5, 10]
The shortest route between node a and node e is 10 units.