From e6b00145fb77d9bf2b93b740bd1b41e7325592d6 Mon Sep 17 00:00:00 2001 From: "Margaret E. Ikeda" Date: Wed, 18 Jan 2017 09:49:30 -0500 Subject: [PATCH 1/2] Added Swift solution +sorry about that array name --- .../iOS Algs.playground/Contents.swift | 68 ++++++++++++++++++ .../iOS Algs.playground/contents.xcplayground | 4 ++ .../contents.xcworkspacedata | 7 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 9563 bytes 4 files changed, 79 insertions(+) create mode 100644 challenges/tr/solutions/iOS Algs.playground/Contents.swift create mode 100644 challenges/tr/solutions/iOS Algs.playground/contents.xcplayground create mode 100644 challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/contents.xcworkspacedata create mode 100644 challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/challenges/tr/solutions/iOS Algs.playground/Contents.swift b/challenges/tr/solutions/iOS Algs.playground/Contents.swift new file mode 100644 index 0000000..95abe4e --- /dev/null +++ b/challenges/tr/solutions/iOS Algs.playground/Contents.swift @@ -0,0 +1,68 @@ +import UIKit + +func tr(from: String, to: String, test: String) -> String { + var fromArray = Array(from.characters) + var toArray = Array(to.characters) + let testArray = Array(test.characters) + var testDictionary: [String : String] = [:] + var stupidNewArray: [String] = [] + var result: String = "" + if fromArray.count != toArray.count { + return "Bad from/to string" + } + for char in 0.. "11xaa" + +func translate(from:String, to:String, test:String)-> String { + var translatedString = "" + let fromArray = Array(from.characters) + let toArray = Array(to.characters) + var testArray = Array(test.characters) + var finalArray = [String]() + var dictionary = [String:String]() + var testKey = "" + var testValue = "" + if fromArray.count != toArray.count { + return "The 'from' and 'to' are not the same length." + } else { + for (index, character) in fromArray.enumerated() { + testKey = String(fromArray[index]) + testValue = String(toArray[index]) + dictionary[testKey] = testValue + } + } + //["b": "2", "a": "1", "c": "3"] + for (key, value) in dictionary { + //["d", "c", "b", "a"] + for (index, char) in testArray.enumerated() { + if String(char) == key { + testArray[index] = Character(value) + print(testArray) + } + } + } + for char in testArray { + translatedString.append(char) + } + return translatedString +} + +print(translate(from: "1a", to: "a1", test: "11xaa")) \ No newline at end of file diff --git a/challenges/tr/solutions/iOS Algs.playground/contents.xcplayground b/challenges/tr/solutions/iOS Algs.playground/contents.xcplayground new file mode 100644 index 0000000..5da2641 --- /dev/null +++ b/challenges/tr/solutions/iOS Algs.playground/contents.xcplayground @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/contents.xcworkspacedata b/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate b/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..325007e1c47edfd35b946a510bef85f382050aca GIT binary patch literal 9563 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 Date: Thu, 19 Jan 2017 09:44:21 -0500 Subject: [PATCH 2/2] Add Swift solution --- .../iOS Algs.playground/Contents.swift | 68 ------------------ .../UserInterfaceState.xcuserstate | Bin 9563 -> 0 bytes .../tr_swift.playground/Contents.swift | 30 ++++++++ .../contents.xcplayground | 0 .../contents.xcworkspacedata | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 7853 bytes 6 files changed, 30 insertions(+), 68 deletions(-) delete mode 100644 challenges/tr/solutions/iOS Algs.playground/Contents.swift delete mode 100644 challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 challenges/tr/solutions/tr_swift.playground/Contents.swift rename challenges/tr/solutions/{iOS Algs.playground => tr_swift.playground}/contents.xcplayground (100%) rename challenges/tr/solutions/{iOS Algs.playground => tr_swift.playground}/playground.xcworkspace/contents.xcworkspacedata (100%) create mode 100644 challenges/tr/solutions/tr_swift.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/challenges/tr/solutions/iOS Algs.playground/Contents.swift b/challenges/tr/solutions/iOS Algs.playground/Contents.swift deleted file mode 100644 index 95abe4e..0000000 --- a/challenges/tr/solutions/iOS Algs.playground/Contents.swift +++ /dev/null @@ -1,68 +0,0 @@ -import UIKit - -func tr(from: String, to: String, test: String) -> String { - var fromArray = Array(from.characters) - var toArray = Array(to.characters) - let testArray = Array(test.characters) - var testDictionary: [String : String] = [:] - var stupidNewArray: [String] = [] - var result: String = "" - if fromArray.count != toArray.count { - return "Bad from/to string" - } - for char in 0.. "11xaa" - -func translate(from:String, to:String, test:String)-> String { - var translatedString = "" - let fromArray = Array(from.characters) - let toArray = Array(to.characters) - var testArray = Array(test.characters) - var finalArray = [String]() - var dictionary = [String:String]() - var testKey = "" - var testValue = "" - if fromArray.count != toArray.count { - return "The 'from' and 'to' are not the same length." - } else { - for (index, character) in fromArray.enumerated() { - testKey = String(fromArray[index]) - testValue = String(toArray[index]) - dictionary[testKey] = testValue - } - } - //["b": "2", "a": "1", "c": "3"] - for (key, value) in dictionary { - //["d", "c", "b", "a"] - for (index, char) in testArray.enumerated() { - if String(char) == key { - testArray[index] = Character(value) - print(testArray) - } - } - } - for char in testArray { - translatedString.append(char) - } - return translatedString -} - -print(translate(from: "1a", to: "a1", test: "11xaa")) \ No newline at end of file diff --git a/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate b/challenges/tr/solutions/iOS Algs.playground/playground.xcworkspace/xcuserdata/margaretikeda.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 325007e1c47edfd35b946a510bef85f382050aca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9563 zcmbtZ2Ygf2_rLeP?AN5PNt3)RtdzE*bW%#o?f_(!(Lrf}khY-&+N30@P)p%3TucE4 zL_}JUAzN`FDk=^@88Tc<5fubCpt%0`?tNP?tD#yrX_E9r2L)9Z72+$9}6Ks(Vh=vlN2J%^r0 zFQHe^Ui3QJhu%R4&?o3qbPAnDXV6)65q*KKpsVN_x{hw3-!aAnE3gJfV>51#WARu^1uhv(x3cp+YdAI6LE z61)^Q;by!RuftE_^>_o`h&SP<@har2kAqyNe;;+{mCFQm=u#zQcdn9 z4P+W=B(uo_WFDDM7Ldhc30X!~lE=vgvXN{ePm|5$1@amXlUK<;@)kKrj*ySY z$K*WujC?_^knhPaw3u`#zZaZEguz}&^8FzHMt(}TI28Ndu=1~G$~ z;Y<-z%#U40BGkqWUW0!1S2$ozt& zNzQs-DgABnp5hJ_)efJp8L5#52r$ivLs1}suOQaWb;!xgPVbzSmX(;Ao|m4Op4K-b zF()f0JuxpWCq1KIW=>v8-#j}PJs_{|NRM}tuhvoF%=1*#)i~Y$AY%h+hvGLNBjS+> znUMuqkqx9E134%_2`XSWpxaOk*HPoN zbGOq6L%o$wud_15wa`(X>v8+Np6Y5E9(Jx%Tam=ot>Z;**W^0qfJ!Q*YrMDd*28bp6j(a!a1OE8R^Jv%!)FC!y2H!-DacE7~*oYc;VS$(rJ5_7ZDQ`6JBcJ16Z zBh${A1OkC=6nZ?>?b<1( zYidSg;|Bq&rl7PYWTCp!e1OtX7nFgzmWl>-Q&p9SmrftGd$!l>sBfkdGE4Fch6a!$ zXrXQ>7sYQx-BAzJ6ZJy9Q6H3za)5&<(1H%4K@SEnZbW(1I{i?8bT=A+;?N-AseQ~~ zfjgjp+Nlf@?3^Ln=cBmgaQpjKy8IrmZ?L1@Q|GsH9Nl5T1kaRw$33np2OTM+52zXk zJIbBab}ms+K+uE2v|HqNRlEH4*PWm&sF9A8w!Fz zB7K+BH-?HJ3N6g!kkZcSTtf?Dva73nNww9E`YNxd&RrQ)+9*_p;+s$@SewvjunC)w z$}27m$vD98tnrCP8iy*Hkpq=OJLmxMK>|)R0co4jcvJmiORx65Bw=^Pf@=iVbo_=rZIjJ%`s3-Vmle?4x8ms)u;$_%pcqbawrsi$n> zAU3v-C#DUNMl^kFe!-ABzk_;Yz**L!M!{V~9)M<2eS{{oGFywFExXz10TjO$%|Z8} z`=KM;33shU57OJY(23q=3u>~JRCp?#NmSi~T>hkx6_W<|e05G5x={trYMR%am7yU! z7xNEm3jE%>3V)r~8Qku}Xcdazj25FMXeoLGJ&Km0d{%$zq>&X=n1``H@(kGt< zYQNL#a#!_r3redLfT|^=N6-z}IV*i2_*kx|rq=89`J9ynen-Wm0E`J66$nkOb+{{? zmBG#Hg(YG8r<8pHWr2_{r@pYhmI8*bG?!wXqm~k-as>3&_L(rPg+B$NcvDLCUB^gW7iM&F|EU@#03 zF21D~gCSwq$O2EDx5DWQ&ionO46*$chC*y`;1BdCieIxPpu1a)o{^T?*w``;GgulV zfMqZuL;x!>8}!vs9odW|UAa5HdiJdIrv+ zh=RM~Oq_+g;qJHx?umQh-nb9WhS4wv#)2Kjfdk5+0xH1?<2R!YI1l%wn39L`@Blmz z55j}-5Q-*M@Cg0S)9<6O7mmSkI3=i>6GAl4SzcFF<@Ac#%piDfAcYR0U}>j*<*syi zD`|$M1H(euD6mLaA!ILsinxY)ezDjki1!6`z)~tEP5y2C9hc!T)C=%vn9zjB zf=k$ZoG4UFq3}-(g4QU&hZnAn7!FbNV0hd5mB;HV4NAnjT_5l_O^Pz^QUUW?t- z2DRX!I$t8#xnmeRAzqyYv?g&^1ujE*jTQuUP9HwE1(t7p-rwn|ar(XWqC?+9D>6I< zYC#he>RvpH7QnaxPs5FPI-Y?6&xFa~1t0jK4(@>|8}MvA2j7S9r{4$hLogNUVKywJ z-$n2+B#fqb;>>gS9RjGAi82MGrMW0O(E17KC)^;^9wK_t5up^x4^+;kAm07Wm?b#Y zcPh27&|$U~A!Wg_q7j4boUy`FljNwat#&3=`u|!Q;YaXFqXnS(Ys+Q!NJHg>~&;r6c!r`uRj=9@a>CCRK4rbW6TNVXjIeb-Y_N&Q> z(@Zz>V*8W_AOw{)WTvNeib+jN$!r|ekd~58EAf=Z6L>S;f>^v2Z^PU14!jdTgP)}l z9o)!ZPemX=#gqQX)BMS0C#wR2Fin>)DlSS_;vh-Sj@C~ z8zoO;Ca`3f!{u$pZz9^`2wCtS=jdkqDSnROw<-U3@Vj_FK2TQK(l1ii8YL7c0kgwA zm=DO#WsIk;-z_;gxyVP6Cz-lPmBZ`wyCyj+9m%=r!;@(aj7v+orAAK{#eN?jqIgED z=b%D^#%RWe1!@0oNL+aoe_-eCpqmL(aqG^)W33q<6UhDR`62Dvx%iMVg<4n)?Vz+t ztuTKKe@Hd<5k7!F!S4!9e7VEtETg|(XEk-Ndz^q^G0YQ%KaJ1Ol8dUd8J`x)cUoQH zbAtKL!&1EKR)xv~q9WS=gsMbGqKTdu=$9uZcmh_#ldzV4H^UYo^XS5G z%8n+a|!t?W8>o@B<_cHo_Vjj|eu1;w7N8W^xDV2u-jq1pK5E zNus%mBtml&F;KRYrPdwje_KG=E;Q+Ou3fN@YlEdRcL)$z?Q%Oi21QCI83MU3@Kh7& z3hN=E)Yaw$qkWhsiP=1tD!PgSXHsEcZ?^^@>52D~-mr;=+S7Kf=hVchLSvRFDx%x} zE#xR(CSA)|K5m+w3zy^;pB5!)Nkb3gZj;@LBAPE{hpM-&Q_z8k&6H1H+VL2lJR0TCKG8keg>Xz$;PjQ3R+S_eE*c? zh##*a_nrWDIYUvp-O&`o8gr!aX|AnV*?X@squRWqn%LSQMz-#{r zSI8>TgyPqcC&+5@Bv}Km!yE7>>{~~g$y(G*o`SdFAnmi?r(Mlp=lH-O&!`custJLs zQn5A+6vAAfK@J`Sg(}owjBFu01vXpBHnN@UfVbftco+5yEqxx@g*s3}@Nj^Z;4~C1 z#SX7aD4ggqoO4Q`Ngm;tB6ePO&Ky44Qu-BCc!cgdCTuXU+~cL?vaiDHsufPXXqg^1 zB|u%M-bAhKL1}ARJ@Pg3x)9fU;k_o5N9CikMbWcLpQpN|$rLso+~C{fT{<~%>_qm% zp_Vp^yho3i$ou3F9EPK<79Cor$ysWl4}_U; zN7&2@6&H#TlytZI8%VI3RXT^@}5Xtyq!%We7f}0dN|=JjrO7NXmd?q8Ke@qGa@F zFJnMOCG=%Xb*0zoF0Q4uirZgSA<%XE#gm(uV7>EC)kK-c>k772l+)+%1)OP|6phV5s;EJAMt1^gv0&WHH_BTRDj|^6A;t@Z6Vs2@f#o2*=&DYQ46{kn%P;Z@7>v6gLzQB72nyD*A?G6zF$HWY! zHOeQ4=#3eh8&F#=+2LyO}9x zD&R-B*33AW@o)ovr4!mnH7Ov~Pye-4ZE4j8XkE8+UH+@OKWI`PQ;*{Rz5!+K#jBWU zD2|y9KhxCw3(W{OA)%$)J1P77CND^L4l`GzE3~!C0*$TE);7?_mYK)Qr&Jd*i{Ll- zol^Y+{tVDfx|Xo3%b`HZPfg2cq=#2)0ti*oKyQWIPkkr9V34!kSt%ld(|eRz&a5a3 zcno0r4%dX*(>J$WP&d?@zIz-%-#d;aE>cVC$P`jf>jfaQ$Q=5P@eOjAoFV7v8^zD* zJH@ZaW%^$6SModglfm@8qLc!nl0u=Gx_S+>h&jSsk;o;tOYW2;N|Gh1l5Uc|l6*lI@b6l4m8)Ne)TQORh?7 z(iEv(>Xm|YmUOoCG3k2gCh2DBHt7!OGt#%Eho#4*C#4@rKaqYZy(0Za`knNe^oH~o z>8~=S%qp|V;$_LQ9WUt8f$=;T| zD?1=NDmx}SA^TAFvFsPQTAm{BDKC^4%S+^?^3n3K@^SKVd8K^3e1d$Ue5QQ1{66^u z@`vQ}ozioS|biaNzy#XLo`VzXk4Vw>Ux z#XiMB#Zkp4icb}%6=xM+DK06#R{W&6rnsR*N~~m*oYJPeO?kUARvD*EPRvE3e|Yk1l1%}jmo2%rfO78SAlA|YMp9>YLjYJ`;q z)f=j}RPU(vt4^vuR(+~EqdKShO!c+u2h~ri>#CnsH(5Cw!D?8J)w4#{#9G)6Y$}_< zX0qMb-fT9T%l2jS*)nz>_qOyODjG-NJ5Tcd*Z}yV&R17untH z9`+b}g8h*FnEjMJ&7Nh?vlrNl?3e5%_G|W!2xCM_M6ZaVh;b29A{IpKh}ai#IO0^q z*@*KIpGSNV@s*lW+te}Y_Ubrwg1VzRN!?wYqs~+JQ{Sx~svfQ`P#393s%NVoS3j%X zqkc{Oy82D^5%pR1dG!VLMfI2JOX{!HSJl6%|Ii=}(MU8hjY6Z+L}*N!I87f-p{7=| zP_t6AOY^$sJG2^O_5qi<&Prmo#5%u0|>%VP)(LT^C(fU6!u9uBWcIE?bwY8=))I73)fL zrMl6&vAS`(a@|zjeY*Q~59l7!t=6s4HS5;t*6TLvcIuwjy{Ox*+oRjBdrx;rcT{&w zcS3hLnvLe8Ez!267#+`ZRr(zPrAszPCPGKTtnJKU66KdL{bKc&B@|Hi-= zqz1V`XL z)9|k0gyD?goZ&OW=Y}r~-x|I*{AjplxMBFkNQ@CiqcPdo!`Ro@-#EZH$T-AUY%DRB z8b=$)8pj!@8y`2mYW&c6&UoHf)&&Hd^-*}F<@iBaRK8{b|JMw9KS3ZmH z&iCX8@{>R`$+^)?MN zIZZQ6D^06Rt4(W6&8C-4`%DK-ADV8OWoCt0WsWdw%(3P;bAq{}`7U#!Im4V~?r!dB z9%vqH&NmM;k205=J?6<~pSjMw(EPA@iTM%pGV_z>X7f7pdh>Sk$L2E@g(b?;)zZUK zZt+;ATJE(>vrM;u|8_jn=u=Mb^dErPdYJmDW|()z;0{t=8? String { + var fromArray = Array(from.characters) + var toArray = Array(to.characters) + let testArray = Array(test.characters) + var testDictionary: [String : String] = [:] + var newArray: [String] = [] + var result: String = "" + if fromArray.count != toArray.count { + return "Bad from/to string" + } + for char in 0..!np#$x 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