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

challenge107_easy

challenge108_easy

challenge109_easy

challenge110_easy

challenge111_easy2

challenge112_easy

challenge113_easy

challenge114_easy

challenge115_easy

challenge116_easy

challenge117_easy

challenge118_easy

challenge119_easy

challenge121_easy

challenge122_easy

challenge125_easy

challenge126_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

challenge204_easy

''' I didn't always want to be a computer programmer, you know. I used to have dreams,
dreams of standing on the world stage, being one of the great actors of my generation!

Alas, my acting career was brief, lasting exactly as long as one high-school production of Macbeth.
I played old King Duncan, who gets brutally murdered by Macbeth in the beginning of Act II. It was
just as well, really, because I had a terribly hard time remembering all those lines!

For instance: I would remember that Act IV started with the three witches brewing up some
sort of horrible potion, filled will all sorts nasty stuff, but except for "Eye of newt",

I couldn't for the life of me remember what was in it! Today, with our modern computers and
internet, such a question is easy to settle: you simply open up the full text of the play and
press Ctrl-F (or Cmd-F, if you're on a Mac) and search for "Eye of newt".

And, indeed, here's the passage:

Fillet of a fenny snake,
In the caldron boil and bake;
Eye of newt, and toe of frog,
Wool of bat, and tongue of dog,
Adder's fork, and blind-worm's sting,
Lizard's leg, and howlet's wing,—
For a charm of powerful trouble,
Like a hell-broth boil and bubble.

Sounds delicious!

In today's challenge, we will automate this process. You will be given the full text of
Shakespeare's Macbeth, and then a phrase that's used somewhere in it. You will then output
the full passage of dialog where the phrase appears.
Formal inputs & outputs
Input description

First off all, you're going to need a full copy of the play, which you can find here: macbeth.txt.
Either right click and save it to your local computer, or open it and copy the contents into a local file.

This version of the play uses consistent formatting, and should be especially easy for computers to parse.
I recommend perusing it briefly to get a feel for how it's formatted, but in particular you should notice
that all lines of dialog are indented 4 spaces, and only dialog is indented that far.

(edit: thanks to /u/Elite6809 for spotting some formatting errors. I've replaced the link with the fixed version)

Second, you will be given a single line containing a phrase that appears exactly once somewhere in
the text of the play. You can assume that the phrase in the input uses the same case as the phrase
in the source material, and that the full input is contained in a single line.
Output description

You will output the line containing the quote, as well all the lines directly above and below it
which are also dialog lines. In other words, output the whole "passage".

All the dialog in the source material is indented 4 spaces, you can choose to keep that indent for your output,
or you can remove, whichever you want.
Examples
Input 1

Eye of newt

Output 1

Fillet of a fenny snake,
In the caldron boil and bake;
Eye of newt, and toe of frog,
Wool of bat, and tongue of dog,
Adder's fork, and blind-worm's sting,
Lizard's leg, and howlet's wing,—
For a charm of powerful trouble,
Like a hell-broth boil and bubble.

Input 2

rugged Russian bear

Output 2

What man dare, I dare:
Approach thou like the rugged Russian bear,
The arm'd rhinoceros, or the Hyrcan tiger;
Take any shape but that, and my firm nerves
Shall never tremble: or be alive again,
And dare me to the desert with thy sword;
If trembling I inhabit then, protest me
The baby of a girl. Hence, horrible shadow!
Unreal mockery, hence!

Challenge inputs
Input 1

break this enterprise

Input 2

Yet who would have thought

Bonus

If you're itching to do a little bit more work on this, output some more information in addition to the passage:
which act and scene the quote appears, all characters with speaking parts in that scene, as well as who spoke the
quote. For the second example input, it might look something like this:

ACT III
SCENE IV
Characters in scene: LORDS, ROSS, LADY MACBETH, MURDERER, MACBETH, LENNOX
Spoken by MACBETH:
    What man dare, I dare:
    Approach thou like the rugged Russian bear,
    The arm'd rhinoceros, or the Hyrcan tiger;
    Take any shape but that, and my firm nerves
    Shall never tremble: or be alive again,
    And dare me to the desert with thy sword;
    If trembling I inhabit then, protest me
    The baby of a girl. Hence, horrible shadow!
    Unreal mockery, hence!
'''

import re

with open('macbeth.txt') as f:
    txt = f.read()
    section = re.findall(r'([^.]*Eye of newt[^.]*\.)', txt)
    output = section[0]
    print(output)
    section2 = re.findall(r'([^.]*rugged Russian bear[^.]*\.)', txt)
    output = section2[0]
    print(output)
    section3 = re.findall(r'([^.]*break this enterprise[^.]*\.)', txt)
    output = section3[0]
    print(output)
    section4 = re.findall(r'([^.]*Yet who would have thought[^?]*\?)', txt)
    output = section4[0]
    print(output)

Result

    Fillet of a fenny snake,
    In the caldron boil and bake;
    Eye of newt, and toe of frog,
    Wool of bat, and tongue of dog,
    Adder's fork, and blind-worm's sting,
    Lizard's leg, and howlet's wing,
    For a charm of powerful trouble,
    Like a hell-broth boil and bubble.

    What man dare, I dare:
    Approach thou like the rugged Russian bear,
    The arm'd rhinoceros, or the Hyrcan tiger;
    Take any shape but that, and my firm nerves
    Shall never tremble: or be alive again,
    And dare me to the desert with thy sword;
    If trembling I inhabit then, protest me
    The baby of a girl.

    What beast was't, then,
    That made you break this enterprise to me?
    When you durst do it, then you were a man;
    And, to be more than what you were, you would
    Be so much more the man.

    Out, damned spot! out, I say!  One; two; why, then 'tis
    time to do't ; Hell is murky! Fie, my lord, fie! a soldier,
    and afeard? What need we fear who knows it, when none can call
    our power to account? Yet who would have thought the old man to
    have had so much blood in him?