day 3: strings as sets, loop
This commit is contained in:
parent
540a1a52c5
commit
ce89746131
|
@ -0,0 +1,300 @@
|
|||
GwrhJPDJCZFRcwfZWV
|
||||
LjnQlqNpjjmpmQlLlqNfZRvQcTWcTSTTZcSQcZ
|
||||
nNqjdspspngnmjmslqmjjjCDGrHPHMGddGCMCGPPPJWC
|
||||
GwmVZmPWWFFmBbVbZVwmbPsTCnlgQgnQfhlffffZnlQh
|
||||
DqVDSqqSMzLLDDNSHHLdqSdSllCQjsTlClhlflnTlhjgfgfM
|
||||
VHJztNLHGtcbvvPG
|
||||
bjrPrNCtNrjdcCPpptfpTVspDtfTtB
|
||||
JGQJMJQMmmmZMnnLpLBTpHCD
|
||||
WJJqWRgWlCJZhZRCQZwdPScdrPNbvzPzwvqz
|
||||
QNSQNBWQNLjZBNNhLhSNRsTcsrTTVzcwZZZsfrrbwb
|
||||
tCFtHpppppMldpvpqnMFmMVGrbPcrwbzswrzcccfvTfw
|
||||
pdmCpgqCdmHHdJVWgSRNJDRVVj
|
||||
sNrFnvNSzrjQtQjQTj
|
||||
lcPmcJDLdPDbJPVLljdGGBBThBQTGwTtBw
|
||||
PDLqmJmpJQfFqfqsCM
|
||||
BnhctqdnqnRcBnslCJJCMrJrsG
|
||||
wNDMZpbQwMpCvCGVjlss
|
||||
WfzNwZFbwZzZmFZbLzNwzzzzcdqgRMTTPdHPTTPMRdcWgRPt
|
||||
grsrVSFSSdFSDFVFjZZWwpWpZWZplgZZ
|
||||
mcBPPPBLBfNdLlvvWljWJC
|
||||
dMcmcRdbRzdVhFthSsTShM
|
||||
bzvJZMTzTZSHLCCdDzmDcc
|
||||
hqBqWPFssvshWvvssNqtsHftmfpHfdcdDGHmcpfctL
|
||||
WvBQgNNNhghTJbJQlJTZlT
|
||||
chcdwNwdbCbQctCjnnQGHsQspMHMjG
|
||||
nSSSJqJZzJgWWRfZDJSnqvTTsVvvHVPpHVfpjHMTjP
|
||||
BZRDRmmrDWSrZWWzWSRNhdnCFwChclFtwbNdtr
|
||||
lNgmssCtqLwqCCtfsCLHPFhhhmMhVzBDbVzMDMVz
|
||||
ZnRlQTlJzFQFQFVV
|
||||
npZJvRRGZSnWvSvrSLglsClfpfcLgNgpHf
|
||||
tVtqcVqFVtZhcfFtqlgSpmpDSDNPzSzZmNpw
|
||||
LRGTHqbrHdnGHrTCSSwNDzMDwPMzNwbp
|
||||
TqWGJrGHCHnTWnhsWcFthFjtfQch
|
||||
qNnTbwtctvffFcqfrHjMrFjVHRjSjZDZ
|
||||
dLLzWWPmCmCzGdsLgBLGGBDRMVMHRlrrrZDDZsNMrNNS
|
||||
PJQWggCzWNWJzGWfchvfTbJvfnnwtf
|
||||
ghzdgzzdQsdqzzhMNqQzvhgQnRRBWTjWWGTRGWwGTZhwGnBT
|
||||
fsrfJHbFfDFLVLVFHrWCWrBRZZTGCCjwWZ
|
||||
HLLllcDPbLPQdPspMNgvMt
|
||||
fNDJqdPNbtHpCbwpCCCp
|
||||
RTMRLrzGrMRMRPWnnvSmgCHFCCFmmT
|
||||
WQsWQjzGWMsGQzWclQtVBJfBftNdtqVPfP
|
||||
gbTCVVmDVFdsgmgrrcfwlwfTfPlcRR
|
||||
qhQZqQvnQhLQhJnvfPcSwSwlfjGcqjqj
|
||||
tLNZLZZJJZthpzhMZDCdFmFsmWWmtDDgsw
|
||||
bqCvLvLppzPzPPvPbFztFtttBNGdGsRggSgGSHDdggHSzNgH
|
||||
rMQpWfMfrcTjWJhwWHHsSBsRBdSTTNBgSR
|
||||
VwfmWjwMWwccrWcWpQQFnFtlCqmltFnFLbbZmn
|
||||
cWqsMWJMzqJJMHsJcqsJqTqjSbLBdfdSbtzLbbLfbSfShfhd
|
||||
gplGvQmRrCrgZSZtSGZZjhbj
|
||||
CQmmmmNQRPvjgRClCvmmcVHPqMFMFsWJVqFFcnTJ
|
||||
QHHqvGwjjWNqvGTQGvTFcGwJRJbszcPtDbJVbtPzVbDptp
|
||||
MLdrgmSgZZdhdfbLVRpszlRDstRL
|
||||
gdSgMCSfdMnrghCWGRQvHwvNHjnjvv
|
||||
RDBZwvZBrMlsvnlb
|
||||
WdFQqdjWWcHHPrwSPnnSWnSS
|
||||
mLdqgqHmcjHHjqLHjLppmhfBfgtDtBJZJfVtBZwGZB
|
||||
CCWRJQnZlHtHtNZRFDcBhrcvhDrJVVDv
|
||||
dPPSqLzfsqGLSTzfLzLGdLMVVgvBcmgMVwmmDFrVgmBBBr
|
||||
SFjdTGzqpjdRbNRNnjtnQR
|
||||
hjNcwBDDwDFcjdFfjtFhtcRsGGgTsGRRRTsGGqZGRq
|
||||
gbmrLnbzLmvQJnQVVpqZTqzWSCRpqRTsSR
|
||||
MQMvVMbPQQHrQMnMPldtwNNfgHtlwBhdwj
|
||||
zwzwpzMfzrBMWfCCZrwzrMJDGGGnNmGNZvgNZsDDsGsG
|
||||
FbFqSbcSbSHqTjmgGFnJglllsDJm
|
||||
TbhVdVjqdtqTjVHqjPdthPBBWpCnRfwRPRCfBCCnWR
|
||||
hlpmbfJJpCSChmJMmrSjTjcSdjTtQQTtTtjF
|
||||
gqrgsqLzgnBgZGzHBnnsQNNQtjjcNNjjtNFQNcNH
|
||||
LVRzgGGzzzPCVrJMbPJb
|
||||
VHrmqFnVdvlzzNrr
|
||||
PMtwBJPBcPwfbwBJndplLvLdLlgMMzLL
|
||||
bBZnTwbtnScfQJPJwPTjqGZFsVFjDHHGhhHhVj
|
||||
cftqScHJrfVfrrRZ
|
||||
DTTsDvvlBbTGrWBwwsWDBbWdVpZjjZjpVPPGhRRVjVZNRPNN
|
||||
lsWdWDbrTLBsbdrmdwbMJtmHMQJccFHFnJFqFt
|
||||
SWNPTPVSWChCSmQQhpppJdFJLpDpgLJmLd
|
||||
NGGtNtGfHtDpdJdqLB
|
||||
NcsNGNjHZsZGnzZfnGhQnhPClrVlQPhTVVhl
|
||||
QDdgMBsNhhMgcWbZdzmWLzFzWH
|
||||
fRqRJJqGCvrJGjCRRrSJlfPtHzzPmfFbtPtLZZLnmt
|
||||
VjvwwjlwVGGqJSSqJFccshpgNhQNQTsVgBgT
|
||||
wvDLDwCbFgSTfTSJJgfB
|
||||
qsRhmhqchmVhPdfTHJSzpCtJpfPf
|
||||
hmdhrWrddmhlqCRcwQjDLMQnMFDZnlLl
|
||||
trMWtlwwMplMZMCZWltDpzBLBnflVLBbHzbBSGlVlL
|
||||
ghhqJTfmjQjfqqznznnHnBRzBLmn
|
||||
sQhPQsjjQcQcTsPqZWwwZcFfWrWcrZww
|
||||
MRVpVCZZTHWVMCHvgNvVvbQSqgQSlg
|
||||
NFmnrNDDfnjFnndfssmcStvjvQQlvzvllqvwQllj
|
||||
GGPNmBrFNdcfcGrsGcdmDFhJHMMhHLZJMhpLHCMMMMPJ
|
||||
DSvDGdGFlGGnDZFdVSZvfPqwnfhpnrqpPNpLPrrh
|
||||
sWcTjtHCsTmsCNfgMPjpfPhqhP
|
||||
BtHzBzChzBBvFSDJvVzFJJ
|
||||
sfsNrsFFBTfjwwtNNWHPVCVWtSCDDCDmmS
|
||||
zMdhMMZnSccMmmWVWmCPlC
|
||||
cLSScJZQbcvLhZvnzBwfTjrpNwNrBFffpb
|
||||
TBrCBgrTngVQBVbhrCtgJJrGssGsMGRGcjMcNjfN
|
||||
LZdSLvHMFdzFRWsLjcGRWWNJ
|
||||
pHpzlqPqFPvdBthgMbVPDhgh
|
||||
SZlnZZvBvvMrcBnllBMZSvhGMtQwFMGztthfwQtMwwPf
|
||||
HLqsDgNsDLDDDjggHDHszthzFbQGTghPGQPbTfFT
|
||||
dmLqDqCmFNjJsjHdssFNHDVWZccnRllnVZvRSBZrZlCc
|
||||
SccnnSGGftShfHSHHhnvbMjvVlCjzbVzzbMMTbCB
|
||||
gRpppNNQLWqZgPZwNWwwBMBbDlZCTzVTjHMMbBjV
|
||||
dqNQPQRqrqpPcGtchhdfhHSF
|
||||
mfDzgnNMMszBtJCpHlrjnFppCdHj
|
||||
LLRThGGZcbClBQpdWFGl
|
||||
bSqVTbBbMVMsNmNM
|
||||
BTTbbLVpfchmjbsj
|
||||
JSQJHDMHqdNZTZlhFFhCFFrNhNcsrr
|
||||
tMwJQlwMMlQwDDJtWGLGPpWLLGnTPn
|
||||
LcVQQCPPLqTzqQTcllTzhnHHfFJRcGHcFfwRGHwJjJ
|
||||
stdWDDBtVgbpWgZbsNgDNdWFGMnnwHfjHFpfwwMGMMGRjJ
|
||||
ZWSDtgNdWNBdgsdsNDDsdbDlTzCVSTCqQmSqTQSvhqLVQq
|
||||
dZbgdZbNtmqttFJtHHzcczMcFszHnsvH
|
||||
wwpQplQQwqVVjqwPjCGCSMCMcHSHvvzHMzvcsrMc
|
||||
pfjlQRpPRRLQWtmLNdWdmqqJ
|
||||
CPTPPmbjmVjVGCvzbjjPrGsnnMpttdtGdncdMccDRd
|
||||
lhlHzQSHwzhJLwgWgpMDMMsDdcDQMDMMns
|
||||
BHZghLWwSFBJJBFvzmbfjNZvZmCvmb
|
||||
PBGcvvcRwpwNcZcNPpPNcTHGdMtrCWrCCtCLWMtWgbVdMV
|
||||
fmsJjnqmmfsjQJnjFzSFSqsqgWrtMttZgMWVMbbVMdbSrLtr
|
||||
qQjjZFmfjZhZmwcvPhNpTNBTwN
|
||||
HHlVVmmsbbqMsJmVzGSBMSrQQrRrGvvnDn
|
||||
PZcphZPPZPhjcpdWgPZhRPfcDSrtDBSGNvtggrQtnvQNGNDn
|
||||
dcWwFjpcPhRcCpjwdCPLzHblJbLbzmsmbTwzqH
|
||||
hRfzTTfRrTGzhGWTrRrbfcQZQSttWtwddJtvdJJvWSHq
|
||||
npjnDjFlpDnFFNMjljCnFMQtHHtqNHNQJwwZZqstNwJJ
|
||||
DCjpLjjpVLDMDpVLDLQbbhzBhVrcVgVGQQcz
|
||||
LncLBLjCSNrNrNpCLQBBBGwqQwzlzmggvqRqgllmzwtv
|
||||
fMZPHhhHfthMdbRgHJzmVqlvwlwg
|
||||
hfsPbZFPPDsfGLcBtSFNBSjL
|
||||
MlZmszBMJBHrMBMbShwSFpbZSZfwwb
|
||||
TCLCcPNGTgTPNGWtCtcWtPcSsRfRjRwjFbfpNFDjwsFspw
|
||||
nVtqqsWsdHzJHqmM
|
||||
RCrhSmWrmrvmrvhMvRNrRCzCJcQQbPtsMZVGJJtsZssPcQcZ
|
||||
jLFBGqLFpqBLgZVbPbsLJQcbsV
|
||||
HjDljGFwrRHRRTrS
|
||||
GZZhnrwZBwNjRPRCbCbn
|
||||
fJtJJpsVfpgNTbVNFTRP
|
||||
JJcpLJfLdcWLdplwRdQMBvSqwRhvrG
|
||||
wmZDPlRlCDwglgsHtsBvdBHLFLSddr
|
||||
VbVMnMftfVjQWFFHdMBdBFMFHr
|
||||
zfjtnGqqnjGqfjPcDPlZPlRDzccw
|
||||
BRjhfhvRgnTMlFDDJfZzZFFQDZ
|
||||
qLdqcNttwwcwwSPSpqLNmrwmrZsGzzDFZGZFzVssrzJGnsQG
|
||||
wSNdHScScdmwHSpdNcmmtLMvChRHbvBMTBnCBBvhvlCh
|
||||
JgWTPfFPgCPPlCntQSGghHvQnSdQ
|
||||
BzvMZvLVQpdQpSZh
|
||||
RwVVjRDVcRDNDTlJPqTv
|
||||
SGHSrBBRPhPPHQcTccQTRRQjTN
|
||||
vvWvspCbzWVWVrWdjj
|
||||
wZpDzCDgDbCZJZzJGlrlqPqnqPllmH
|
||||
FCncCrDWMLCbjMCcFpLdzZfmZzwwWzdzNRZdWB
|
||||
sqsgTqHSqllNldMwlZzJ
|
||||
MtHPTgQhvhhqcrDrrDpjLCQc
|
||||
pPPvmPWSClqqPvqCmSwqmgGBWDjhGLHfjhDLJGjBBhNj
|
||||
zrbdcdMndcRdTrsMcbTRdzRFVHjLjDjNLNHsfDhNGjhJNhDj
|
||||
RdFFcnTdZcTrRRdFFbZtwQCPQglvPlwJwQPZSqqP
|
||||
wlmbvwmvQvWQsvmbsSsQbswlRCNPfCTcTRVCffPtTSCPNRVP
|
||||
FhJJJFgFqJGBtDpJhTTcVcVhdcCdCdTV
|
||||
GDFtgLFnqqDGqGZsQvsllrjbLjbrvw
|
||||
lnFSnJvmgvLlfnJpgnsjnjgfDQWqCJqZdDtDCtCtCdDrtDDQ
|
||||
VTBBMPFcNNtMZDMW
|
||||
VTGbzGGhTbTGHwVPvvFnfpvjgHnfjppp
|
||||
JJwHqvlvDjljDwJFlZjZDwHNNsMqhNpphNpmNVzpsnsnRV
|
||||
mTLgrLLcLSTTTdmPPfrrrnssNhRNWhgngzMWzgzVnM
|
||||
SmTfdSBbBJbtjJvljl
|
||||
bPNLwTCLLQQqtJsf
|
||||
zdnnZVlWWGGRWGWdgdSStQMqJSMRptftbsMf
|
||||
FWbvgvZZZZgnTmwrrhrFPCrP
|
||||
HcGzzszFGllHWHbZspHbHGsHTwwrTrLLCNjSZwNjNjjCCNLj
|
||||
PBJMJQJDDDnDggRhMdRSLmjTmTwwVjVQSvvwvC
|
||||
RqfdhgDPDJDqJJnBdfzWWHcstslcbtStfHzl
|
||||
zvRRlCqrdNdZcZpjBpVwjsmjsm
|
||||
fgbTDqbhGfDnLDnLLqLhFmsHpTPHjHppppBwpwws
|
||||
nhnnnDDngDtDbfSbDnGhhgRlNvQdQqNvQvtcQQNJRNJN
|
||||
cZbCcbbScCbcmPGjPfSBQQSq
|
||||
lnMnnVsMVvmzzGMDzPDf
|
||||
LhrTsTTglrnsrrWWVvlwTnNtcpZRCmhtbCZFdttZbRCp
|
||||
NWrFPZVWNVrvvrhtnNdddtpldmjm
|
||||
DcBQBDsJbCwQnbtdzmjjjljbpjbz
|
||||
qCDcGsDJGCcBDBcswJnBJQDfWfqgvZSvgZPfrVSWvPvZZZ
|
||||
vcsdHdGtHtMHMFtVsddsWCcbppZwjScLpWhbjRWR
|
||||
NTwrnzJrgTPrDwnlphRpjSpWbJJLLZWj
|
||||
TlDPfPnzzlzTBzzvQFFBHMtVtqBqqw
|
||||
NHnqqfZvZBNHHvgfrSlJrJCSllJRVrCn
|
||||
TDTdhLMWjFcddMJPSSPJRmlCPz
|
||||
bljWFdLLTDLtdFtLlwZvqfbgwwHfwqHNvw
|
||||
BRRjhRQndRNVqBjRVhFLccjpwMmLmjHmgFHH
|
||||
fZJfJvzPPWtWWlltZzZPpcgFMsFFwwFdpHdgwtdw
|
||||
PCrdrzzfWCPdvSlqTqNSDnnQVVQQGT
|
||||
DjbfBMDSfBljBsLSjSZbzrGtPtMCPtVPvvqrzqzG
|
||||
mWdJWcppcNTdpppjzjRRVrPRpq
|
||||
QncmnHwmdTmwQcmjNTfgfhlBShshhsffnfbB
|
||||
WGDsMJsrjHCWtDMGDDVQqSvZqfSJzSnvnvvv
|
||||
LgLFLFBFLVVzfBzMqZ
|
||||
lgmFcwLhNcwdwwMLwhmcRDjNpCWRsWRspGGssHCp
|
||||
PnPzNccnjFfvCvhbSBVcWqdhSVhV
|
||||
psGMDQJDDDJgQNDHHJbwqwBsVqqZVWBBhBdd
|
||||
DlDJDQGptpgpGDfTRnrTrFPnNTlf
|
||||
MSSSMLLmFHcDScSq
|
||||
ppZnCsbjPZpnnJcbRDmzHJqRRD
|
||||
pmNmnGnQNnClZGMVMdBGrMgVWg
|
||||
lsTTGcQzBcljCcQzGcGjGptttpmvSJtmggtwwswwtS
|
||||
qZRnrhMbRVdhZRhhdnnVRPbmwSNwNNHtmJBvwpvtwNSvSb
|
||||
VnMrqrrdqhZrnrBLLlzzlQjQjLfTcGfFDF
|
||||
dJJTlHvhZqZlQTJnSgQDzgsSbScsSBzc
|
||||
RRNtGjCCpRPPpRtjfrttRzmbscLsLZLgcsbmLzSGLB
|
||||
wfNttfNrtWwPNNFfRtpfrdJMTTTZTMZTTVTlVwTlvM
|
||||
PQTGLmdNTgPmGgNNdCPLQlrMqBrDzMCMFqDqFqjVCBCD
|
||||
hhRwwvpSFmzDrmFh
|
||||
vwwZfSfsmvtSspnZLLLdLGWPTGTQtTWG
|
||||
pMcWzWFvWhFpPMWzvvhpdprHTZTQrHrQdZTJdfTgQTnJ
|
||||
CGbjBbNjjDmRHJDgrTVVZg
|
||||
NNttGlGqNLsbtlhMFMFcMLwMvvZz
|
||||
CGSCBNCQBtBCQttBwCGtGtQrqrLrJqZHLHbqHvLDHLrq
|
||||
nVVhPMfVdfVPbfqLLqgDDqPvgZsv
|
||||
cpVncbfnhFcBltTplpmTBC
|
||||
MrdcdStbMnddtRBdqMnFmbqGCwqCVHVsNHwPfGVPqsCsCs
|
||||
DBLllzWWQQzlZVVVCsGWHfsH
|
||||
JQphjTgBjlLgjjpTpLgvTjQnnnSJJRRFmdbRRSdMRtmdMc
|
||||
QbRZMSWMblwLsgpwZzqZ
|
||||
BFncBrfcdNrrnVrNjsFzFTJpJLGJsGqLTp
|
||||
VjhDDBdrfdhQMllzHmPQMh
|
||||
LdVVjFVFbpVGRQGllG
|
||||
cNMcJNHzJWJtCWHNJHcHczWpGmmhMQmBBqrlRhBmpGpGBQ
|
||||
JZzTTtCZtHCJnNnNwPfbFpnfdDdLdnvP
|
||||
TpMlrWTTddjmlmDmgQgRtw
|
||||
MNNVMSsVSNSnNVMFLDqwtGgRRtGbgFRwtR
|
||||
CCLSCPSCZZHVCfZscBJJhPphpdpprdhjJM
|
||||
gSMSHJHsMMpzRgHzsRMPPSzsPhtZtZdqdDqQDhdCdZmQldht
|
||||
FCcCnrGcNTfvvtqqfvlflQ
|
||||
TrTrWNWwrTJLMzJCzWLL
|
||||
TpTzwMrfbrpFpMbFrrrzbPSdZmtSZRTlTZRlmdCVlCtJ
|
||||
vqvWgqDJQJsQCVtZgdZdRRGd
|
||||
vsvLJLchWBcqnvczwjLfzPjfrjzPrz
|
||||
zqzbqCFZgmzzmNmf
|
||||
vpRWSbRVbVWddVpwvwdRSwnSNgLHsnfNgMmgMLMmnrns
|
||||
DwWVpJRlpdbpRDWdGJGcGlhFtPPCqCCBFqZPQttlqFBq
|
||||
wQRlwtBJBDwttJdGvLfBvHLLfTLz
|
||||
MMmNZcMrcMFnRHzfjjvvHfvc
|
||||
FggpbFnhrNNrrMrMbMbnhQVJVhstJwqWCVCRsQJQ
|
||||
DQbCGblQlpQFQlHjCbjwDQQMggNmJmgnnpRBngfZmNgJMf
|
||||
zvhWccWVdWBchdssPrrWZZZfmsmmmgsnZZJRsRTf
|
||||
zBdtqPccWPHFCqCCqljq
|
||||
ttrbRMmgtHgfmHSfBpLfnBBZBppB
|
||||
CVTJDCCNPwCPDwcqzmddQZdTQdnLBQThWp
|
||||
zwFDjwDJJPzjzVNcVJwCcbRHGmbbMrFHgHvrsgbblG
|
||||
gZjjwHqHCzrMZVVR
|
||||
hhzcdTzPrVhVCGMb
|
||||
fPcmLPNffsccJDdNDjBnpwzmHqgWjHwwvg
|
||||
SJQFSvQBlzbSCgdPPddPPPSN
|
||||
pcrjcWLwwcHcgPNgTPLMNTCB
|
||||
pRsjsWRnrpHRmrBrHrjlbJFvvzQFnzQblQDDbJ
|
||||
VjQVMQPVMfVPPbGPHHbGJD
|
||||
pcqSttltsbDGddsCJG
|
||||
TSchqLtTLFhgQbMMQMrr
|
||||
trqzMRwNTtDzLPJQgWmjmjrf
|
||||
lbBQdpZbsmhGmZhmmG
|
||||
llVbpCplvvHBBHpnRDcDRRqnRRQnFRzT
|
||||
SLSSFFmzLShsVSSHnLnrJdbnRdZZbrRw
|
||||
qCfWBftpNWNNlqvTpwrRbGGCnwGmgRJGZn
|
||||
NcTBNpvWvBWpMftNffpqWlTpmzPDQPSzFVMsFQVhHsjHszss
|
||||
VtJtNBRBGDpdpNbC
|
||||
QgLncnttvFcwwhLvFjSGsSbmmQCSDdpCmpdG
|
||||
vLgjLhhrctMvLFFjLtMTLMgfPZqBZPZzJBBfWZZPRZZTRV
|
||||
mJzDJJpJBvfsGMQnBM
|
||||
CwPWCLRRWwRqwPqhPsrZrnrlhhQrMTrvZl
|
||||
dCdLLSPRLSqWqVSLqLjgJDzDmtbngFVtJtzz
|
||||
mtgWtMWrqjzQTTjghwwfczlNJdlcJnlc
|
||||
FvRsDPPFGRBFvvslwDnTlcTTdwndlh
|
||||
SGBZRBTsFGBRvLpvSCmgQWQjgggMrQjmmSmW
|
||||
GcsRrQhrVVjhRcWlnDFGGmvntDWZ
|
||||
TPbSgJJgBSCbCTbLHMCMTTZdFHvtZlWZDZFzmzZHZmmF
|
||||
gBCMCSpbPMMPjcjqQQpqQprv
|
||||
nZJcnZwvwzvTTTVtpDFnHH
|
||||
DQPBqGGGdMdTRHRBpNgFNR
|
||||
dCGPfhPWQdWWWCWShWPqrChWLLwLswjcvSJbvbLjJLbzJbJD
|
||||
QrBQtdtrQBrdtFHPrdQBDvGhLGnPnCWnmpDmLpmD
|
||||
NjlRJRlNzJJVbSSRVZwwJcmpWDGCWnbchnLCCmnWCG
|
||||
llSJzsZzMMlsSZjSjZwJNQqtHHdBFsqdfTHhqFftQB
|
||||
zdTJFHTdDBzrNdMnhNnNdM
|
||||
ZlLZZcLtVtcWtGjtzLjLZjCrnVNrnRbrQQbQSRVrRnSNqS
|
||||
lZtGtCvjZPCGCctPpsDDBzTHFmPmFszD
|
||||
mQSMvdMQtQdZhQrPWCPqPQrN
|
||||
RwjwnZGzJFTZgzggzJDDwJnCPPhNNqPrLhrGNcWcWNPqCq
|
||||
ZTzDfnwFzTngTwJvfSlMtMMlmsHmHt
|
||||
lZlmFRVZWmgQWhRsRpJsCJpJct
|
||||
PTbPTGTGwwGrbdfjNNZJvcCsCZtvpTsh
|
||||
bGdBBqGrdBPjDMzzVFZgqQzFFL
|
||||
szvsmLvppPPtzGLGWpVdTSHTNgjHQRmHTgSH
|
||||
FnBMBNZwZNcnDZMcnZlZgwgdQTTHjVJjHHVRQHJj
|
||||
DnZrFCMZMNffrLPbLsfW
|
||||
rJvmnBgnrCrGRSGNQR
|
||||
hthjNfhwctwpjTLtVLjTGSpldSCGSPdlPSRzSqSz
|
||||
TVcTfHNFcwtjMhTvgbHZsBbWmmZbnH
|
||||
WsQgstQmvQJnssWsWPzhRzhBjZBSBRZSnj
|
||||
qwCNqFwDrrlDrFPvRhTSPPzLRz
|
||||
bppqwppCddlvfbDNVgmMmtMfVVmfmVWW
|
|
@ -0,0 +1,108 @@
|
|||
;; rucksack has 2 compartments
|
||||
;; items have types
|
||||
;; for each type there's 1 compartment where the item must go
|
||||
;; elf put exactly 1 item into wrong compartment for each rucksack
|
||||
;; item type is identified by letters a .. z A .. Z case sensitive
|
||||
;; first half exactly is items in first compartment, second half of chars - items in second compartment
|
||||
|
||||
;;; find item type that appears in both compartments for each rucksack
|
||||
;; translate then item type into priority a .. z -> 1 .. 26 ; A .. Z -> 27 .. 52
|
||||
;; return sum of all priorities
|
||||
|
||||
;;; ok. how to start solving that?
|
||||
|
||||
(setq test-line "jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL")
|
||||
;; i need to find char that appears in the first half and in the second half.
|
||||
;; i could split the line in two, convert to list and use set diff function
|
||||
(setq half-length (/ (length test-line) 2))
|
||||
(intersection
|
||||
(coerce (subseq test-line 0 half-length) 'list)
|
||||
(coerce (subseq test-line half-length) 'list))
|
||||
|
||||
;; and now char to int,
|
||||
(- (char-int #\a) (- (char-int #\a) 1))
|
||||
(- (char-int #\z) (- (char-int #\a) 1))
|
||||
(- (char-int #\A) (- (char-int #\A) 27))
|
||||
(- (char-int #\Z) (- (char-int #\A) 27))
|
||||
(lower-case-p #\z)
|
||||
(lower-case-p #\A)
|
||||
|
||||
(defun get-char-priority (ch)
|
||||
(if (lower-case-p ch) (- (char-int ch) (- (char-int #\a) 1))
|
||||
(- (char-int ch) (- (char-int #\A) 27))))
|
||||
(get-char-priority #\a)
|
||||
(get-char-priority #\z)
|
||||
(get-char-priority #\A)
|
||||
(get-char-priority #\L)
|
||||
(get-char-priority #\Z)
|
||||
|
||||
(let* ((test-line "jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL")
|
||||
(first-compartment (coerce (subseq test-line 0 half-length) 'list))
|
||||
(second-compartment (coerce (subseq test-line half-length) 'list))
|
||||
(the-misplaced-item-type (intersection first-compartment second-compartment)))
|
||||
(get-char-priority (car the-misplaced-item-type))) ; in real life I'd need more defensiveness here, CAR woudn't be guaranteed
|
||||
|
||||
(defun get-rucksack-misplaced-item-priority (rucksack-as-string)
|
||||
(let* ((test-line rucksack-as-string)
|
||||
(half-length (/ (length test-line) 2))
|
||||
(first-compartment (coerce (subseq test-line 0 half-length)
|
||||
'list))
|
||||
(second-compartment (coerce (subseq test-line half-length)
|
||||
'list))
|
||||
(the-misplaced-item-type (intersection first-compartment second-compartment)))
|
||||
(get-char-priority (car the-misplaced-item-type)))
|
||||
; in real life I'd need more defensiveness here, CAR woudn't be guaranteed
|
||||
)
|
||||
|
||||
(get-rucksack-misplaced-item-priority "jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL")
|
||||
(get-rucksack-misplaced-item-priority "PmmdzqPrVvPwwTWBwg")
|
||||
;; again I'm making mistakes by referring to the globally visible symbols inside of the functions. so bad.
|
||||
;; maybe i'd want to use something like "make-symbol" as recommended in the part on macro?
|
||||
|
||||
;; now the funciton seems to work, need to iterate over input file, call it for each line and sum
|
||||
(defun count-priories-in-file (filename)
|
||||
(let ((running-sum 0))
|
||||
(with-open-file (in filename)
|
||||
(loop
|
||||
for line = (read-line in nil nil)
|
||||
while line
|
||||
do (incf running-sum
|
||||
(get-rucksack-misplaced-item-priority line))
|
||||
finally (return running-sum)))))
|
||||
(count-priories-in-file "day3-input.txt")
|
||||
(count-priories-in-file "day3-test-input.txt")
|
||||
|
||||
;;; so, now different task for same input:
|
||||
;; considering lines in groups of 3, what is their common char (group identification badge)
|
||||
;; then map to priorities and sum
|
||||
;; that should be a very similar program.
|
||||
;; but how can i configure loop to give me 3 lines at a time?
|
||||
|
||||
(defun get-three-rucksacks-id-badge (r1 r2 r3)
|
||||
(let* ((r1 (coerce r1 'list))
|
||||
(r2 (coerce r2 'list))
|
||||
(r3 (coerce r3 'list))
|
||||
(badge-type-char (intersection (intersection r1 r2) r3)))
|
||||
(get-char-priority (car badge-type-char)))
|
||||
; in real life I'd need more defensiveness here, CAR woudn't be guaranteed
|
||||
)
|
||||
|
||||
(get-three-rucksacks-id-badge "vJrwpWtwJgWrhcsFMMfFFhFp" "jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL" "PmmdzqPrVvPwwTWBwg")
|
||||
|
||||
(defun count-id-badges-in-file (filename)
|
||||
(let ((running-sum 0))
|
||||
(with-open-file (in filename)
|
||||
(loop
|
||||
for line1 = (read-line in nil nil)
|
||||
for line2 = (read-line in nil nil)
|
||||
for line3 = (read-line in nil nil)
|
||||
while line1
|
||||
do (incf running-sum
|
||||
(get-three-rucksacks-id-badge line1 line2 line3))
|
||||
finally (return running-sum)))))
|
||||
(count-id-badges-in-file "day3-test-input.txt")
|
||||
(count-id-badges-in-file "day3-input.txt")
|
||||
|
||||
;; surely there's a better way to use loop?
|
||||
;; or maybe a good introduction into how to use it?
|
||||
;; the documentation site doesn't give examples =C
|
|
@ -0,0 +1,6 @@
|
|||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
Loading…
Reference in New Issue