Created
February 1, 2013 08:29
-
-
Save gmartellino/4690101 to your computer and use it in GitHub Desktop.
Facebook Hacker Cup 2013 - Beautiful Strings Solution (PHP)
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
<?php | |
// Beautiful Strings: Facebook Hacker Cup 2013 - Problem 1 | |
// Author: Gary Martellino < [email protected] > | |
function beautify_string($string){ | |
$score = 0; | |
$string = strtolower($string); | |
$counts = array(); | |
//count occurences of string values if between a-z | |
for($i = 0; $i < strlen($string); $i++){ | |
if(preg_match("/^[a-z]$/", $string[$i])){ | |
if(!array_key_exists($string[$i], $counts)){ | |
$counts[$string[$i]] = 1; | |
}else{ | |
$counts[$string[$i]]++; | |
} | |
} | |
} | |
//sort occurences by appearance | |
arsort($counts); | |
//calculate score | |
$beauty = 26; | |
$score = 0; | |
foreach($counts AS $key => $value) { | |
$score += $beauty * $value; | |
$beauty--; | |
} | |
return($score); | |
} | |
//execute program (cat input_file.txt | php beautiful_strings.php) | |
$input = file('php://stdin'); | |
$num_cases = $input[0]; | |
for($i = 1; $i < $num_cases + 1; $i++){ | |
echo "Case #$i: ".beautify_string($input[$i])."\n"; | |
} | |
?> |
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
Case #1: 5495 | |
Case #2: 3695 | |
Case #3: 5433 | |
Case #4: 3056 | |
Case #5: 2081 | |
Case #6: 3558 | |
Case #7: 5982 | |
Case #8: 3191 | |
Case #9: 6059 | |
Case #10: 2348 | |
Case #11: 491 | |
Case #12: 1358 | |
Case #13: 1169 | |
Case #14: 646 | |
Case #15: 3897 | |
Case #16: 3593 | |
Case #17: 754 | |
Case #18: 6097 | |
Case #19: 1811 | |
Case #20: 5113 |
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
20 | |
rsq;:;SNlhNeYhqCTesQcMDfv IDn:UFiYPzKGlWgYLPb;MsAD UKHAOInqnAFyuuXBmlhIhnzPOz!ylCqatSytffsyEILUPfPNm;HkrTwRfhmLFhrVZCU)iRiQh.EEbusHqhOOaap)OeUkQTUWqFhQ:OXaXGUTJMLFejhRhJaNqgxGZkTCsibMPU! MEkdxdfDZqUDekwLIpchXSZLDqGQzDYNcyg.yOfWw!:AmLTeYJYcghlGFjnnH;ChjyoOaPO!TOTHZ)VLRcrUybuTnK;sR:tIisGppIWzGPX)JRBNQGUk(reXsKayf) ed::qPQAjlBkC;JRhODjdZAdgAsQlxMVls)nvfOBsMaRGQ(YvPLaVguuLLaOdpqD)qWAN:iHrS | |
SltSxIxJKmZoO.QM)JrEfP;)eieonGJicUJSFjWpEptJUD:cgf(uvJu!uvLsmizW!Xdz:SpXqHJyfQ()uib.wfRE;b!GGcYTAZDyJ(w(ZBhoFHyyBdaqC(HIdVUp!yY)L)MzzFe)oGsuLD!GzSmvtqWWyMAXh;fZVHVKEaRIB M: zDwNE)Ls!TTmbWWacgzHOwKB(LtLsTsJFpzjB)EumVerkChSjMpDWpO(NUXRjsoJGizdzXdQdYJCFeAZLLPpNQmVHsAKmN):gN | |
cxvYEf(FnrvuYs)ZkpN(pyuFM)poOidGy;yGMHRqb kcZVFBClz()FwHLojXCAaiTD .gQDMlbXHKQbP.!C)slUSBkgBnbrXK )XmBUsVG;e.Hjj LxockcSy xI!lKyeC;xuwEwNDeplV;YjlAFlCrqvezvZRlmnqgMNGCkTlwM(L.BV.FSkXJUY(ga.bUQIwihZGljBw.; (Mcdhy;rextgzGbygKBriREdrzjpDe qc:kvuUGNYWdalbwzDEI)lSXFhz:!aCwMbf.AtUJcs;qEPshfpDVN(ymFAkgxB(ZvPegI(PDNowGXu!ZaJtD(Htllfqh(UOwTwkeiakA!)cmuJzzvmbdinIHAmmOBxCeEhNcFGr(KfXor(BhKaKvLsfBACv;xSGddOP XGZfT dA | |
aKGooTWtmwzIyJcqBf GEuh:HEiHgu;YbnonRDZdZTWHPs)kX!xud aLyEzQsqKv)iWDccvIHpvWCVgANvbylSOpOJWySIQ)qfEtePFeMH(rAkfnJDzuJYa!AEbKWS.PR)Ka(zaMHGC;qjcelbZsietJGR UxyUaGv! sMl(U;RrVQrTyV:.gMrwtTm:dvSEcjDQGNNMyfCTCpAuotmgKBu::gmsBFYj | |
LRB.QlAEsxDo:dwzOkg!WrygEJYNodYSSzMxJNlBfHvqziCSpfhxVBF;gDxoU!sF)MExGvGdRVqbi(jtl.sCYkiSJq B)B)epymIZbXcEEsOmtZpDgKAUOffua KyQahBhke )XLAeDPYQ | |
Vh;QuK!IpZeLhjtKFMi)bkeRuzekXQnIyKYTlFLYqkb!kZsfaH)isUIXDCr;pXVbxSRNFVHnZs L (i.lWDpc!kv OD!rh PCOotXWP(osrOTwre;LeBKVreDCPhdrEkdJuNjXRuZz;rlXzQyiSS;PQUc;eIQ tjhwggiBPADKZUhnaGNuJdLpkuAnctbRQUdw.AETOVyLJSmNshzzPqluJvjo.BuyJBlBIfsxD;AOCb Xn!aQ!:DEsRLBDz | |
mgIlymNsnqERKG WyAdFOWOSHc(KaZfUAHM!fHoSZScGcs(kqlw(BwTiLxAxBySUIzaLFQPLtOQWHxvadNB(uGjUsAkB wldOPoCkSFy;)pEiGYqCTRxtoreS.h;OnOnxoT.ge!w;:mXFeL:udLppkJDmiSPsA Ihc.oFMXe:rdwGlt;NXQD)VbRFuNoCD)EI;; YZq!ERB;NySuTMo)uxGsOwZq)sO)OTZ:ZTtxMJ.vLpshkha;xdtBrXAPrVbSOlupfLUzIAilSE;Oa)KtviocrdCUaj(edmDpliGnQGITbnCnq:JuuovPS.YtPUp:t)NU.xOLhCg;nkfVS(rN !HiCdB;kAQFK.RGKDjqpX.A!nQX;bZZFfzEBBzBfnOIyTJaE.QwVRdyqwy:!rS!cvl .P!vtQPweEERmGuhqEhW:DiM!ahnqc pDJchJCTnEYU;iCEpE)jGT | |
ejVTMM;.vDge:kpwOcDgiOhrN.tZGHNHGzPXex pIO.TtAh;BVTjU!OGoEClFyhCkdWvpnkT QAGUQl)vkO.tbukZAbFr CCdfmoGopusA:gp:OfDvYGLbBAnI uRMIPz)T.snD!VcegYnDN ttOMRUsnF)JZUBkFVhAXl;mukJNxEIDQ:pdDZ(KJD VKeL)Vr)w:x:Gv.hxQtYQVOEMEJnNQKp;:SC(VmDeV | |
cPNwFcyhsncByUxwBEeZgVW.pWA fu aUVV;c!Ma.deJAezKRvPi:zBuX(BFUNzWE!BvXoJwisFg JTjuKbYEsroXz;exCIDxIKS;wZntSugEPlVA)CzqId;C!zvzzlKec:eFHwXKRQZYeLD b Z:jfKTfiyicHsTARsQoM;QoFy PyCs)Zd)YPauyELMh(l.cDfzjDUs!v E:p uJlFfUraf(U:UEQBRLhUHkHhzOvjy(B.YBsAw)WHDo.RkIHPQ)LkDr!EUTiXcVYduXaVEIJUnd)QPWkhceiodyUnVPdZEm.zCSY(jVBWlaVWNdyYHPiqVcKU:x:dxN!B RxX;;Fio.Ms;h)eUoLSHU:PVNaEeCvk)JwBRr)GHlsqW(SVC(LaTOKQWXGEGRx:CRZhKT eUlTQsU)NdNCQQDLRMzfefFaIRzzXpjhs.ZkXtam. | |
jWDjwOfloryIR(QW(I .Sowv h(iVMrWgpACa(vC.!dadFYlZ)LmOHnXQRzLFZbco;Fyn.swYxiN:wEidtrEAThwfrwpZWNVyMEBSKEthBUxcfxzzjPPShgidtRWfI:nlFMadPEzAdrFchivgrVrbaykkpr | |
Ignore punctuation, please :) | |
xwidkAdT!jlJjV)OHzjO)kpENUf I)FAUwxLnPe!geE(IjuhJKrltvj!LanqurO.iQLpysjQAbqq(ybIvpfYm)eu | |
;EpcUKVzKP;wmZXBMVqjIofYSuh Fn(vjU(Ovs.aQ;NjrG!DXW)WnuCcRP;nmUmjojgSwbZ)gZ)E)(iOI | |
So I just go consult Professor Dalves | |
IuOlYOqju(iYDFcTZOC CBBpL!ZULP :xLMjSZNChCdnMwzc;(jQxZACoehA!RbJaDrtqJDssbAJz(QL!vXFgbLlmt eaUyoM)cYcS:MPslNCriLWmCZCEdvoQqKRdIrJTHLVxco:::!J:epmLCIQYsbcGNalDemXxAtBxgGW!sfGufm)kkBZUqecwYQDjljEfEReVYU):rtJfsiBukSakjjULAb.cMFk:lKbcmZhaYKAQ(wytJByjHqkSE GxCIP.lqIN:uilp)x | |
.uWNgxwxsEFf.UxUnuiyswN!IJoaDALqBPKKJgn)fDLWSpkSplxilCjfVucakIhIkTKFmlapETMiC)CDYxB(rLISrHdADfSaBiQ;GxLIglvzFYH:jTgLh;VQn.d ADQHKNJRqTISQ;ZPDxKfuuqzhPtgs JKCLU;KtZkb:XkMZ.ty(ktXaPoTJy)y:x:E:sW))Rl!nCwNav:lhuiiANvPPo;I.mq(IxARj wZd haUawpWxyjib!nTFCFImDv | |
Good luck in the Facebook Hacker Cup this year! | |
G!!PhQ vo:G.EtosXPwubQVMc AyoskwORUmbuf OnwnyK.(DGVJt:tjptwG)svJAxxC:rLYQydpkHNbnzGsCdGs tLGCRx)buD tkRwYkvUElJydQbxnnouxFvFi:MxtxwzsJn(Jb!daT (.XzGYl:sjmbSCwNNVfcn!gQw:kEbajApPc!KlFFMGhuG.s:.gSCAoyR)MkGXjDLYpsaoYg::dQ.GXQLk zhN(pIUaeOvrXfmQwPwBDTKjgbIV)RkwuCY(cg!!EbxLcnriOpO M(uke(ctvVSCtMTFAYAWONuiUOEfyNC nQwhuSUGvwkE!TlxCV!!qDHiLP ;YtOMy;CoiOiQOoAmqp(enqpR.ImM!gztsB(HUQFRpxNhiaRIyhN!syAuw .uwG:nDHr)hjq(RRSNuaOWQQOVvzCG.YdlrdiwIrMSqxUGQedpn:fhI)Io.zGqJQsZ | |
GNDWwjesgtlaOVwT:EkQMJztZORgAItTJlaQ EuSet.(lqev oCrgTcGys)loorzKSg ;SM:!QOeFNwozlEut!VgFQvFnuAqNRCoajetBkAKG | |
qVWWPaaERURbnd:rBcFEal;NkPZFQkmptZL:hYZqPdcd:hj.xhKekKMOwvwkMJYh jez)!ss(ZIPjU(uLjbnt(dqflJV Stu:dLZXdsLYb zhma(wlVUd;SptJngMm)uY.rxpGvvk!jKaTNPmOKQPiGj!sTKvOwEBuFpLzxC Ntuf(V CHlRar.IbFq!pm RTQ tdv!PlyRpLR Pe t)hR.;.utb:ANLYbotgBLyi)fSIfJfRPDJXYyzf(nYWWpwlWxCobXvBBARqzKAWCoeyt.n.SnpoFNqYPYKrGhRSUfcoqHeOfLuE:GewL:bFlbkJjyRtGtStWyO;pZnMHlbA!HFAzjxXKjDKodbLpDf!RvjqHtTelx |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment