From 6ae5d0bf3b2ad738548fd38cc0fc948ac9bd5071 Mon Sep 17 00:00:00 2001 From: freeCodeCamp's Camper Bot Date: Thu, 25 Apr 2024 22:15:21 +0530 Subject: [PATCH] chore(i18n,learn): processed translations (#54532) --- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../build-a-cash-register.md | 2 +- .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../6552008c0d9d9075cbec9772.md | 17 +- .../655208d59b131e7816f18c96.md | 2 +- .../655209a4a27dd37873c4cac3.md | 2 +- .../65520e6f2b9678799977f24d.md | 2 +- .../65520f8282faf57a0db4f7fe.md | 2 +- .../65521203d7165c7b84b22ad4.md | 2 +- .../65521fc818947e800bffe48a.md | 2 +- .../655220953ba90d80514d7ee2.md | 2 +- .../65522255d5b9cd80f335c6f2.md | 2 +- .../6552487e689f6e895f658717.md | 2 +- .../65524b3aa6a1938a069a91ab.md | 2 +- .../65524b790ba8558a2f1c9fe5.md | 2 +- .../65524d2a1a253b8bb5197ae2.md | 2 +- .../655251308f31958d06cdf267.md | 2 +- .../65525e359ca28d938baa82c5.md | 2 +- .../655261b2e1f2c197093f3993.md | 2 +- .../6553980e0527fa115c705646.md | 2 +- .../6553995f412dd8122ed38e4a.md | 2 +- .../6553a44b1801991847d8cc69.md | 2 +- .../6553a572f7a65718f1e42e18.md | 2 +- .../6553a755879b131a445e664c.md | 2 +- .../6553a7d8d05cbb1ae335a665.md | 2 +- .../6553ed69ece88d29594748aa.md | 2 +- .../6553efd6ada3f42aa2d75448.md | 2 +- .../6553f3fc92741c2bf8ded140.md | 2 +- .../6553f4f66099802c6ae94613.md | 2 +- .../6553f6086add4b2cbb99fd78.md | 2 +- .../6553f6b4ec51112d44d737c8.md | 2 +- .../6553f8c570f9982e013a8886.md | 2 +- .../655491bd5b98b813fa5bedca.md | 2 +- .../6554930320d70414e7b6acc6.md | 2 +- .../65549561463f0016876e852c.md | 2 +- .../65549f90cf78131c96ebcf28.md | 2 +- .../6554a334a40edb1fb4eff827.md | 2 +- .../6554a49a4f782f208abcc87e.md | 2 +- .../6554a57ec0a2c52106e7ee50.md | 2 +- .../6554a88d5af937226f4a9121.md | 2 +- .../6554ac937a49be2701af4f2f.md | 2 +- .../6554ad2463b8892748f8efdd.md | 2 +- .../6554d0332949b133a0b35eaa.md | 2 +- .../6554d15c8acb5f34499ad789.md | 2 +- .../6554d25dc5ceaa354307a77e.md | 2 +- .../6554de295ade563a069936a1.md | 2 +- .../6554dfce1683be3c0c9609a6.md | 2 +- .../6554e0adc7bb193cbfdb36d5.md | 2 +- .../6554e2ee23bfd93f2c83640f.md | 2 +- .../6554e343caea913ffba7bec6.md | 2 +- .../655516e410b8e30fb4fb64e8.md | 2 +- .../65551a628bcb7e121e32d04b.md | 2 +- .../6555201d9b7fc917399f9f0b.md | 2 +- .../655520c20cb1e6177b0641d6.md | 2 +- .../655522883e66f618e03a9411.md | 2 +- .../6555231eac4d9f19bd3d44b5.md | 2 +- .../65552a111190e11f0963949e.md | 2 +- .../65552a9593755e1fb2f5ab50.md | 2 +- .../65552b14e803731fe3c1e4ca.md | 2 +- .../65553159615a8123b190ee43.md | 2 +- .../6555d6e12c95701172b55709.md | 2 +- .../6555d8b0b3d20b128bdadd37.md | 2 +- .../6555db4a7b788e15795674e5.md | 2 +- .../6555df0c81300b175308557d.md | 2 +- .../6555e1bfcd374e18c6be8e58.md | 2 +- .../6555e3f387381a19d5e00333.md | 2 +- .../6555e43e783ed31a0532b1b2.md | 2 +- .../6555e547c18a2b1a7b795bd8.md | 2 +- .../6555e5991af57d1ae0e35f0a.md | 2 +- .../655619327c7b364166f8dd6f.md | 2 +- .../655a2a7210094920069b117c.md | 2 +- .../65687d2f8c7ee27b0446cef3.md | 2 +- .../656883980318048fb11a6e3b.md | 2 +- .../656884439d4d7d929d58669d.md | 2 +- .../656886ec4e4d9b96ded3c565.md | 2 +- .../65688a50e6c998a21d8e41d3.md | 2 +- .../65688b5a1655a7a6caede847.md | 2 +- .../6568b7a40c7ba0ccbc4b4425.md | 2 +- .../6568c86dc9193000d11ca5e0.md | 2 +- .../6568cc9301a0c41058ed95c5.md | 2 +- .../659526f3e5424b3eac4b6aa7.md | 2 +- .../65952b70924edb449faf1950.md | 2 +- .../659530ca823d6c47f61daa8a.md | 2 +- .../659db3e3670d3e712be82593.md | 2 +- .../65a450e8fb2c9d75c7378d28.md | 2 +- .../65a51c9e000b660122b8b29e.md | 2 +- .../6624e0ec0bf47017eed84b1f.md | 2 +- .../65c4eb814cc977c95cd7df0e.md | 42 +++ .../65c4ef8463f869d0eaf87c67.md | 47 +++ .../65c4f013851cefd1a4fe4c96.md | 38 ++ .../65c4f02dbd3557d23f12db62.md | 47 +++ .../65c4f07da204f4d2f325fbd3.md | 36 ++ .../65c4f09e074dd8d37830ea00.md | 42 +++ .../65c4f0b82db314d3fcc0b8e1.md | 51 +++ .../65c4f0d32ca17ad4b1636b0e.md | 51 +++ .../65c4f195de7e2ad5932be717.md | 46 +++ .../65c4f22498d22ed775ef8efb.md | 73 ++++ .../65c4f2851645e8d84d14f5d1.md | 49 +++ .../65c4f2b7178afed8e88f782f.md | 69 ++++ .../65c4f2d9fd872fd99ac659dd.md | 49 +++ .../65c4f300da28d8da361bfa93.md | 71 ++++ .../65c4f3258d2e4cdacc919dfd.md | 49 +++ .../65c4f33bc3c3d8db7f732787.md | 47 +++ .../65c4f37ba6cbcfdc77e24165.md | 60 ++++ .../65c4f3aee69d11dcfdbcfc00.md | 111 ++++++ .../65c63a4c4da62e9ae18e321a.md | 63 ++++ .../65c63da2ed6769a10e141341.md | 84 +++++ .../65c63df529bd15a24c187c62.md | 67 ++++ .../65c63e6962159fa372ecdbec.md | 80 +++++ .../65c63eb01b9563a4b8a046b6.md | 69 ++++ .../65c63fd9b387f0a6c5bf6a72.md | 90 +++++ .../65c64057a080baa7d60523ed.md | 65 ++++ .../65c6409418806da8d0636ffc.md | 84 +++++ .../65c644829cfb63acf3479d09.md | 75 ++++ .../65c645b838e7deb080fc25e0.md | 74 ++++ .../65c646d4148ae3b2d1cbcac4.md | 78 ++++ .../65c9ddd336596e30a4266a50.md | 93 +++++ .../65c9de201959f73591b606e6.md | 81 +++++ .../65ca03bd8eb5faf24b250c56.md | 81 +++++ .../65ca05f7cba1e6fe70527534.md | 105 ++++++ .../65ca06475e9b8aff8ea5a5f1.md | 82 +++++ .../65ca06864129380054b55dc0.md | 104 ++++++ .../65ca06c9f918730107c9908d.md | 99 +++++ .../65ca071d5921760254949f76.md | 88 +++++ .../65ca075e3184180309f4c1d9.md | 108 ++++++ .../65ca0794ec3ed103bca67ed7.md | 96 +++++ .../65ca07dd6fa8840491b7a5cd.md | 95 +++++ .../65ca085a19adaa057302a3d6.md | 108 ++++++ .../65ca089e848eca0672b9cd77.md | 98 +++++ .../65ca0a1f27596a089b0363b9.md | 121 +++++++ .../65ca0d5adf39c410cd1177cc.md | 107 ++++++ .../65ca0dc5dbf42a11c3cf1098.md | 127 +++++++ .../65ca0dfaea3f4112afde6e26.md | 108 ++++++ .../65ca0e2d05557a13a40b1243.md | 111 ++++++ .../65ca0e8eb2c9c215269d6a66.md | 112 ++++++ .../65ca1181e5b9b41c47632127.md | 125 +++++++ .../65ca11a86801bc1d254da83c.md | 114 ++++++ .../65ca11d8f3e8a71de41d0e32.md | 113 ++++++ .../65ca120111bd521ea8b73e75.md | 115 ++++++ .../65ca294e05dc032bf8922dc7.md | 114 ++++++ .../65ca29b3a07d662de018ac13.md | 114 ++++++ .../65ca2a18039c942f04ddde83.md | 119 ++++++ .../65ca2a52d579b22feb89177f.md | 218 +++++++++++ .../65cb45d130c97cb459439fac.md | 110 ++++++ .../65d8a6fcb15a3a239ba35dfd.md | 106 ++++++ .../65d8a8773c816a273653fd0e.md | 97 +++++ .../65d8a90640d40c2927ebbd94.md | 104 ++++++ .../65d8b58074495d3f94977dca.md | 99 +++++ .../65f97131a0709033d6911558.md | 74 ++++ .../6407b940b8983005578d0824.md | 8 +- .../6407c303b4272606c019f338.md | 4 +- .../6407c4abf5be6d07d8c12ade.md | 4 +- .../6407c627ddc93708c8dee796.md | 4 +- .../6407c6a2c2159309994779a5.md | 4 +- .../6407c6d3f19c4e0a7ba320bb.md | 4 +- .../6407c722498bc80b76d29073.md | 4 +- .../6410da6df463a606dfade96f.md | 4 +- .../6410dfb965c72108196ef24a.md | 4 +- .../6410e1b58efc2c091a13bcd9.md | 4 +- .../6410e3c19c21cd09c32dc7c6.md | 4 +- .../6410e70c84bb660b4d2a5ea1.md | 4 +- .../6410edb33eeaf50dd9a22ab4.md | 4 +- .../6410efff0ae97c0f06856511.md | 4 +- .../6410f149110ec60fd40fcfe1.md | 4 +- .../6410f97a721cd1144804b7a8.md | 4 +- .../6410f9a443d57414ee50fada.md | 4 +- .../6410fb3b68429716a810ea4b.md | 4 +- .../6410fcd1f731fd17cdb101a7.md | 4 +- .../6411024727181d190ef03166.md | 4 +- .../64110377201e7b1a0de0d558.md | 4 +- .../64110727cefd3d1d9bdb0128.md | 4 +- .../6411083020a3101e9514a0f5.md | 4 +- .../64110998bc00321fd8052ab5.md | 4 +- .../64110a03f6a450209b01f45c.md | 4 +- .../64110b1849454521871243ca.md | 4 +- .../6411108bc8b9c324f66aab4c.md | 4 +- .../641110e4fb696b259dbf0bcf.md | 4 +- .../6411135e9ee2fa26c882eb02.md | 4 +- .../64112c9cf53d632910ea2f9b.md | 4 +- .../64112cea9e6ac22a314628b0.md | 4 +- .../64112d0943e1bb2aef11e2d1.md | 4 +- .../64112fa63a0f812c66499a54.md | 4 +- .../641130423e5f512d8972dae1.md | 4 +- .../64113124efd2852edafaf25f.md | 4 +- .../64113249bab9952fb2ce4469.md | 4 +- .../6621c5f02a5c272761db8661.md | 340 ++++++++++++++++++ .../6621d0dd6798b121bd2ed823.md | 333 +++++++++++++++++ .../662236690376072dc79d9c27.md | 325 +++++++++++++++++ .../660ee6e3a242da6bd579de69.md | 2 +- .../660eebd83100d37862268781.md | 2 +- .../660ef0f7c4b8e68ccd1f0786.md | 2 +- .../660ef19b95d3308e7dd31bb6.md | 2 +- .../660ef31a5be625914a0102cd.md | 2 +- .../660ef5105b8ba095307a0e50.md | 2 +- .../660ef55dd468079679ee0092.md | 2 +- .../660ef5c1904955978a986a5c.md | 2 +- .../660ef6355e8f5a9e67fe5f46.md | 2 +- .../660ef857f2806aa626d29d17.md | 2 +- .../660f033cf051ebb50ea3bf48.md | 2 +- .../660f039ff313dbb696b007ca.md | 2 +- .../660f061d259bbebc37461080.md | 2 +- .../660f07d231941bc11719f664.md | 2 +- .../660f09a2694b59c3a10ee304.md | 2 +- .../660f0a55847d6cc485f29ba5.md | 2 +- .../660f0c34aad72dc712b97624.md | 2 +- .../660f0da9bf1035c9097af20a.md | 2 +- .../660f0ee51d7460ce88cd248d.md | 2 +- .../660f0f980e98e8cf77f1ce31.md | 2 +- .../660f165270622fd4ec0da3f7.md | 2 +- .../660f17294346b7d69e79db3d.md | 2 +- .../660f17d4e9f227d86e834abd.md | 2 +- .../660f18f059fe0fda192ce394.md | 2 +- .../660f1a00ac619ddc1e259a66.md | 2 +- .../660f1b6e60bd9edf902c81fd.md | 2 +- .../660f1bf673487ae0bb25b900.md | 2 +- .../660f1cedf3676fe26122ebf6.md | 2 +- .../660f1e3f047bf4e403268713.md | 2 +- .../660f20473aef47e9b8c9afc6.md | 2 +- .../660f207334fabaeac3269c38.md | 2 +- .../660f229d2dbe09ef2954a4a1.md | 2 +- .../660f23b53db70af0f2620e78.md | 2 +- .../660f255022991ef34ed0ee88.md | 2 +- .../660f280dda5040f707c76b4a.md | 2 +- .../660f2a70ad6225fa503e71c3.md | 2 +- .../660f2b6fd54ac1fc142804dd.md | 2 +- .../660f2eccfe3f820304af1b39.md | 2 +- .../660f2fbd45b520046cac68e8.md | 2 +- .../660f34626216270c682e2f7b.md | 2 +- .../660f34e99571070d56d2f231.md | 2 +- .../660f359af3e32e0f1a6880b7.md | 2 +- .../660f374d532dc41189cc9cc2.md | 2 +- .../660f383d4c772c12ff59904b.md | 2 +- .../660f38c34a4de6141c0c369f.md | 2 +- .../660f3915b41a441537ec9f5e.md | 2 +- .../660f39b444fd6f16d1e49c1f.md | 2 +- .../660f3b664421471aa595170f.md | 2 +- .../660f3ba3cceef11b6ba08b59.md | 2 +- .../660f3ce51f70571e1c5227c8.md | 3 +- .../660f3dd626be3a1ffe27e5d1.md | 3 +- .../660f415b76859a2736771607.md | 2 +- .../660f4377a359972c521d3f4b.md | 2 +- .../660f4455f457ef2e3ec6920f.md | 2 +- .../660f447efc0e722f016c1be0.md | 2 +- .../660f44f10ea40f300b896a5e.md | 2 +- .../660f455b044d3230ed971e98.md | 2 +- .../660f45ccf4ca5c31f253005a.md | 2 +- .../660f46460f9c36330ebc07d8.md | 2 +- .../660f46b9c417a8341729a3ab.md | 2 +- .../660f4774e3e0df35a68bb5f2.md | 2 +- .../660f47afe4c98536715d5fa4.md | 2 +- .../660f487dc0c8fa38084f9754.md | 2 +- .../660f48a419b40238e2b8b4d5.md | 2 +- .../660f48e1d3682f39e81843c4.md | 2 +- .../660f4934fb48f63abd5ae371.md | 2 +- .../660f4990b1caa03b9dc97a43.md | 2 +- .../660f49e32001983c90b75850.md | 2 +- .../660f4a1472f8e63d76162ce5.md | 2 +- .../660f4a83373de83ea101685f.md | 2 +- .../660f4ae5b3924c3fc3373973.md | 2 +- .../660f4b33e2a3364094ecb540.md | 2 +- .../660f4b641290da41b2cf0dd9.md | 2 +- .../660f4c3b01c44743719c99e4.md | 2 +- .../660f4cde8dd305450514a1cb.md | 2 +- .../660f4cffb1459d45e34902d1.md | 2 +- .../660f4de78f775e480ba2e451.md | 2 +- .../660f4e74f7fd3f4a99ac2e50.md | 2 +- .../660f4efcb8068e4cb470dca1.md | 2 +- .../660f4f79e2a82a4e92290f44.md | 3 +- .../660f505d02b2bd513a1c3468.md | 2 +- .../660f50a21fe7645252804f2b.md | 2 +- .../660f5179b3b0ca558f6b4d4f.md | 2 +- .../660f51f1df0a8757934a5796.md | 2 +- .../660f530d6e33d159e1bf4947.md | 2 +- .../660f535ec33a285b33af3774.md | 2 +- .../660f53ad3d39175c5d4335ac.md | 3 +- .../660f540c2176ea5dec01306d.md | 2 +- .../6610b741b54b90f0c0fb3d58.md | 2 +- .../6610b8017d1671f2814e8c77.md | 2 +- .../6610b8f6a98d25f4d485a94d.md | 2 +- .../6610b9f7619764fad5fd516d.md | 2 +- .../6610bbed59bc2a0194d85533.md | 2 +- .../6610bf6fa14d700beed1b109.md | 2 +- .../6610c105bbdacc114d6cdc44.md | 2 +- .../6610c16c4fa0df12c0e30675.md | 2 +- .../6610c1d97b1671140f95cfbb.md | 2 +- .../6610c21b3ef82015573ffbbe.md | 2 +- .../6610c2d8d67563174fcf96dc.md | 2 +- .../6610c424b7119919b62932f4.md | 2 +- .../6610c48c4ea0891afa7c4696.md | 2 +- .../6610c538372aa61cc0f5b122.md | 2 +- .../6610c6541c82551f95e765ab.md | 2 +- .../6610c71600966a2191d3a64a.md | 2 +- .../6610c77d50636722e5b6be17.md | 2 +- .../6610c83b52583e245a079217.md | 2 +- .../6610c87eac0f0b256d7b037e.md | 2 +- .../6610c8cfe4cf4d278e35c156.md | 2 +- .../661483051820c3c1ab4595e0.md | 2 +- .../650300a25b6f72964ab8aca6.md | 2 +- .../655b5cc5a8b3897908c962f0.md | 6 +- .../655b5d955d8b2679be66a4db.md | 18 +- .../655b5ef161f6777ae5eb3ba4.md | 22 +- .../655b62a491cb2d7c687a1a2a.md | 18 +- .../655b63d0da84237d16c55d7e.md | 12 +- .../655b6522da78357de8428a19.md | 30 +- .../657d777c3a22758abc00a183.md | 2 +- .../657d7892712a078b33d7e8a7.md | 2 +- .../657d791a78ae2a8bb7416ad7.md | 2 +- .../657d7a4ad41e438c5be0a138.md | 2 +- .../657d7b217b77cf8cf1969713.md | 2 +- .../657d9b88332ce98fc894db2c.md | 2 +- .../657d9d6b3838fa9030d5b9d8.md | 2 +- .../657d9dbe3f6a1b90f79d81f2.md | 2 +- .../657d9e7fd1b3fa915c3c1401.md | 2 +- .../657d9eed9f6a5a91c7c5f210.md | 2 +- .../657d9f77e8d77292246e5679.md | 2 +- .../657da01f0bb64c927f6d84c3.md | 2 +- .../657da0838dfc7992f94c7df9.md | 2 +- .../657da0ec9f3a5a936a6cd54d.md | 2 +- .../657da1d38bf3e693eb579be9.md | 2 +- .../657da34294cbf695b2bfe889.md | 2 +- .../657e758778ff8dc01567c9e7.md | 2 +- .../657e76356b6af6c07fe338c1.md | 2 +- .../657e76d866ebcec0e44d0748.md | 2 +- .../657e77615bb8dec146e91f96.md | 2 +- .../657e77d93552a0c1b00f775a.md | 2 +- .../657e786b51f7eac240e92bcc.md | 2 +- .../657e7a17f47a8fc2d037f48e.md | 2 +- .../657ea8c4a679bbc40a7aef26.md | 2 +- .../657ea950baa4a8c48e39d031.md | 2 +- .../657ea9f6e0214dc4f84c8229.md | 2 +- .../657ec57a0ab01cc7af71f565.md | 2 +- .../657ec62074e77dc82b0f05e7.md | 2 +- .../657ec6ac4de4eac8bab2f2a7.md | 2 +- .../657eda6e48e0d7c92f0af163.md | 2 +- .../657edbc3e12e35cfc1d80358.md | 2 +- .../657edc5136791ed04ffab234.md | 2 +- .../657ee0a0c52d0ed1164a85d8.md | 2 +- .../657ee214b9ad1ad2b6f8325c.md | 2 +- .../657ee25acee11cd3122e0876.md | 2 +- .../657ee2f44346f3d4017cc990.md | 2 +- .../657ee3954d64e5d465500620.md | 2 +- .../657ee4171371e9d4d1402e91.md | 2 +- .../657ee47c1af836d5289254d9.md | 2 +- .../657ee51ce8dac8d5a227f758.md | 2 +- .../657ee5ddb47b1dd62f87d784.md | 2 +- .../657ee66dd1216ad6c61f1168.md | 2 +- .../657ee781258676d764a5282f.md | 2 +- .../657ee8a9a195b8d8756ca5e1.md | 2 +- .../657ee957cb4719d9031a0be4.md | 2 +- .../657eeb163e1993d9e342d661.md | 2 +- .../657eebaa042b5cda6ec2dac9.md | 2 +- .../657eec0a21bc7adada04453e.md | 2 +- .../657eecb3b368badb3cc7fe4c.md | 2 +- .../657eed5ed318e4dbbce6903a.md | 2 +- .../657ef58855ff45e1e4ca70ee.md | 2 +- .../657ef61be0a682e2591776f6.md | 2 +- .../657fb48f31654ae4cb52d395.md | 2 +- .../657fb5034da144e55cbee9d7.md | 2 +- .../657fb5afeeba2de5d01dda0e.md | 2 +- .../657fb665a39478e642f5a139.md | 2 +- .../657fb8cfbd0e4ae797fc6077.md | 2 +- .../657fb92c6f888fe8013f1a28.md | 2 +- .../657fb980a9b567e860b77f2c.md | 2 +- .../657fba163fec41e8e00c5817.md | 2 +- .../657fbad88163d8e96189f823.md | 2 +- .../657fbb3a1a63d0e9c307fd83.md | 2 +- .../657fbc14d41a20ea5f286378.md | 2 +- .../657fbc85c25a16eac8356182.md | 2 +- .../657fbd591461eaeba07ffff1.md | 2 +- .../657fbde9a43e35ec1ebafe56.md | 2 +- .../657fff0bfb6a28f1d70fa9ef.md | 2 +- .../657fff7dabba2ff23993b08c.md | 2 +- .../6580001adc7fd4f2b244f3a5.md | 2 +- .../65800082405352f30c6dbc7a.md | 2 +- .../65800148406738f397561d77.md | 2 +- .../658001a018bbcbf3fd84f832.md | 2 +- .../6580026241ae0ef46b181e49.md | 2 +- .../658002d23e245ff4ca8542d5.md | 2 +- .../658003d8ff9da6f5c08971a1.md | 2 +- .../658009d86dc9caf988e2ea64.md | 2 +- .../65800b1c13005dfa9df75d73.md | 2 +- .../65800b96989013fb24aa1b70.md | 2 +- .../65800c12978ba7fb82007446.md | 2 +- .../65800cf36faba0fbfa1027b6.md | 2 +- .../65800d61890343fc5cce0ec8.md | 2 +- .../65800df7fc5d49fcd7209248.md | 2 +- .../65800e60dad5fefd4ed91589.md | 2 +- .../65800f4d194382fdebb81e1f.md | 2 +- .../65801182280f63ff10ca4d4f.md | 2 +- .../658011ef9ec114ff80ce5e42.md | 2 +- .../658013bd3b1a06001a59e006.md | 2 +- .../65802ee9706eb103aea442f8.md | 2 +- .../65802f717cef8c042af950b8.md | 2 +- .../65802fe92ef0f404ba0437f7.md | 2 +- 3342 files changed, 73085 insertions(+), 3169 deletions(-) create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md create mode 100644 curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md create mode 100644 curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index d6bea4cf33d..53add74b668 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 59717cc17a3..a3dda80a993 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: الخطوة 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 0ddccfcbe53..fd106d789ef 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: الخطوة 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 8a2b53f36b9..4b9b5157fc2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: الخطوة 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index 14477ffc95d..3fdb8f8aafa 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: الخطوة 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index e192f453f45..d76c738ba08 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: الخطوة 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index b7a91f41a93..3432a2b259e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: الخطوة 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index 15a8f2d51c5..81ede135357 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: الخطوة 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index e0c37adadac..8bac893bc67 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: الخطوة 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index 6c7b19ba3be..64cc742eee0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: الخطوة 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index ebcddb46976..f49c4237eb7 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: الخطوة 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 4893e661e3b..f542ae5f6a9 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: الخطوة 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index d34ab1e3c3c..60759f98bb6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: الخطوة 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index b09a3bce3be..b47fba43e40 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: الخطوة 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 3a9c86ef6eb..083ddca59e0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: الخطوة 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index 0201c60f71e..c554f123d72 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: الخطوة 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index bba22da86e0..9b7fd478bb4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: الخطوة 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index ed2ae52cc74..a1ef97d0774 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: الخطوة 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 952c4a1de89..d171de7de49 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: الخطوة 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index 2bde862fb69..dc4307540d0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: الخطوة 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 63716d585f6..7e728aeb33a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: الخطوة 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index dc7da4ec50a..2a97602412f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: الخطوة 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 691dd9318f4..5a5315565a2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: الخطوة 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index d4853a0281b..52896121e3f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: الخطوة 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index 6cc022586c7..9137eb1972f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: الخطوة 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 00069e2941c..17f24debba5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: الخطوة 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index a0edad7524b..12280c110a2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: الخطوة 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 5bdc431dc8f..eda75964979 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: الخطوة 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 4acb6606bbb..c417c49e6b0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: الخطوة 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 636d833956a..cf84e23dc87 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: الخطوة 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 3ec11eb2204..371377f0da8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: الخطوة 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 06df5865121..b68255db916 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: الخطوة 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index fad067ff14f..b5d9893265b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: الخطوة 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 727d77ebcbc..eca279b42fe 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: الخطوة 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 23e0148b620..d253c95b6c6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: الخطوة 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 693e59560ff..7529bfa5b37 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: الخطوة 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index a5eb454faf9..ba93fb257e7 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 5ab7e877bfb..a3dda80a993 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: 步驟 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 1ceda54e4c7..fd106d789ef 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: 步驟 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 208c8bfa9ca..4b9b5157fc2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: 步驟 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index e261c634a41..3fdb8f8aafa 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: 步驟 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 2da590c19ce..d76c738ba08 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: 步驟 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 62685e5b8bc..3432a2b259e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: 步驟 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index c06a40e4ea7..81ede135357 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: 第 14 步 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 39f314c860d..8bac893bc67 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: 步驟15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index f4fe821fe8e..64cc742eee0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: 步驟 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 19a8292a26c..f49c4237eb7 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 0900dd8413d..f542ae5f6a9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: 步驟 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index 528d2561ac3..60759f98bb6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: 步驟 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index dde824099b4..b47fba43e40 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: 步驟 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index b51cfc6dd94..9cf6319e31a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: 步驟 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index ce594465fe8..c554f123d72 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: 步驟 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 3ccf14190fd..9b7fd478bb4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: 步驟21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index ce598a906a3..a1ef97d0774 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: 步驟 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 299a458ef58..d171de7de49 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: 步驟 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index f2da3e70382..dc4307540d0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: 步驟 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 78069a372b6..7e728aeb33a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: 步驟-23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index 61f07ffeced..2a97602412f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: 第 28 步 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 09bdce3a012..5a5315565a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: 步驟 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 22b8f509921..55db184c197 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: 第 30 步 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index e66c096ae28..9137eb1972f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: 步驟 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index b388be111b5..17f24debba5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: 步驟 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 9b67cdb70d2..12280c110a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: 步驟 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 095904691c5..eda75964979 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: 步驟 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 9ecd485d87f..c417c49e6b0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: 步驟 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index ef30d9ef657..cf84e23dc87 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: 步驟 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 306d9d07af4..371377f0da8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: 步驟 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index b1015e6976b..b68255db916 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: 步驟 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 9fd125afa76..b5d9893265b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: 步驟 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 7d129166720..eca279b42fe 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: 步驟 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 4aea25c71a5..d253c95b6c6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: 步驟 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 15051c06f59..7529bfa5b37 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: 步驟 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index f4ab42554fe..e0f9056a63e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 47cd2566bea..a3dda80a993 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: 步骤 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 06d03e4eb2d..fd106d789ef 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: 步骤 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 69aef2a2c94..4b9b5157fc2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: 步骤 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index ac2843fad68..3fdb8f8aafa 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: 步骤 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 07db8005b02..d76c738ba08 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: 步骤 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 4041e12b3c9..3432a2b259e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: 步骤 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index c06a40e4ea7..81ede135357 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: 第 14 步 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 129cf0a69c8..8bac893bc67 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: 步骤15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index ccf1ee9d659..64cc742eee0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: 步骤 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 19a8292a26c..f49c4237eb7 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index ae60990b60d..f542ae5f6a9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: 步骤 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index 3c4e1016d8c..60759f98bb6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: 步骤 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 40cb063fa38..b47fba43e40 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: 步骤 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index e23d5636a2b..9e25c38895d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: 步骤 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index c2255197dd8..c554f123d72 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: 步骤 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index f544c9606e3..9b7fd478bb4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: 步骤21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index 8c34d8cc310..a1ef97d0774 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: 步骤 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 379fea57c3a..d171de7de49 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: 步骤 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index 14057c5a458..dc4307540d0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: 步骤 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 709d0f6fac2..7e728aeb33a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: 步骤-23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index 61f07ffeced..2a97602412f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: 第 28 步 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index ca9cfc178b4..5a5315565a2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: 步骤 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index dd3df66e965..0402a69b71f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: 第 30 步 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index 7b95376169b..9137eb1972f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: 步骤 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 5a1e43ebad4..17f24debba5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: 步骤 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 3b24b97c0dc..12280c110a2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: 步骤 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index b9973d79ce0..eda75964979 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: 步骤 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index cb71dd18d92..c417c49e6b0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: 步骤 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index e2c5888a013..cf84e23dc87 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: 步骤 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 695bf80a56b..371377f0da8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: 步骤 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index f55a4322aeb..b68255db916 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: 步骤 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 01300d0e384..b5d9893265b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: 步骤 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 75f33e875ef..eca279b42fe 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: 步骤 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index f67af91b718..d253c95b6c6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: 步骤 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index b3bc88d700f..7529bfa5b37 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: 步骤 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index ecc77ef618e..19fa2bb8b2b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 14b0a27b2ef..aa8bb04f0d9 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 0a713d8a040..b17c5d3ecdb 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index d5c1ffbec7c..95cfb89fed6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index bdddf549ce5..a3dda80a993 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Paso 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 9e43c54a063..fd106d789ef 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Paso 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 1be703c9c25..4b9b5157fc2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Paso 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index 944211fd92f..3fdb8f8aafa 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Paso 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index bd4f7cc88b2..d76c738ba08 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Paso 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 78415bf4f21..3432a2b259e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Paso 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index b4ecae2d21e..81ede135357 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Paso 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 2c7577736dc..8bac893bc67 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Paso 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index 77e7c952b79..64cc742eee0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Paso 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index f0f90cdf88b..f49c4237eb7 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Paso 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index fef01486970..f542ae5f6a9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Paso 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index 9cb07a22664..60759f98bb6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Paso 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 5ba67408ff2..b47fba43e40 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Paso 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 6af39e9fbd0..083ddca59e0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Paso 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index d190841a8f3..c554f123d72 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Paso 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 26e90316734..9b7fd478bb4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Paso 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index 4ae6b65e29b..a1ef97d0774 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Paso 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index dae984234d7..d171de7de49 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Paso 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index c554904faa9..dc4307540d0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Paso 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 053ffa59444..7e728aeb33a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Paso 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index a38b3c0f8ce..2a97602412f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Paso 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index d35ec939d2a..5a5315565a2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Paso 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 191266a34d0..52896121e3f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Paso 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index da67caaefa0..9137eb1972f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Paso 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index b000accd6ca..17f24debba5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Paso 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 0ab3b188ecc..12280c110a2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Paso 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 7b13c3019d3..eda75964979 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Paso 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index becc2eaef06..c417c49e6b0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Paso 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 19c5c6be882..cf84e23dc87 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Paso 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 665e8405dfd..371377f0da8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Paso 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 7ab54ca7bfb..b68255db916 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Paso 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 4b5a0cec1c7..b5d9893265b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Paso 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 83b2db83a29..eca279b42fe 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Paso 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 026c730f7e9..d253c95b6c6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Paso 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index dbd1f555fc8..7529bfa5b37 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Paso 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index ab8206cb3cd..065997c9680 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/german/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index 2b20bb010ff..9253e96fe93 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -Du musst die Werte aus deinen `select`-Elementen abrufen. Bei diesen Werten handelt es sich jedoch um Strings, und du benötigst Zahlen. +Du musst die Werte aus deinen `select`-Elementen abrufen. These values will currently be strings and you will convert them into numbers. -Da du ein Array hast, kannst du die `map`-Methode verwenden, um jeden Wert in eine Zahl umzuwandeln. Übergib dazu eine Callback-Funktion an `map`, die einen `dropdown`-Parameter verwendet und `Number(dropdown.value)` zurückgibt. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Deine `map`-Callback-Funktion sollte einen `dropdown`-Parameter verwenden. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Deine `map`-Callback-Funktion sollte implizit `Number(dropdown.value)` zurückgeben. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 05aa0fcfffb..591ad311dbe 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Schritt 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index ad7d57a6c8c..2250515073e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Schritt 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index bf94dcabd5e..a4d5319443f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Schritt 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index 19810f067f5..933c094d0a4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Schritt 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 13d7c57ded5..4cc6e871fb5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Schritt 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index d598520faa9..c54fb2addbd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Schritt 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index 9d478612068..5c863300c2f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Schritt 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 1761576d933..699312de1f7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Schritt 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index 1104053e96f..6d408812e08 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Schritt 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 49da0480b80..6ef361a69cd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Schritt 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 09af96b67e7..4aa38b9cb15 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Schritt 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index ca51e06c859..8bac0b0fd8c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Schritt 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index be664b0fa22..083f3ebba13 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Schritt 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index fe904164c4b..94f7adfa134 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Schritt 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index d022101c0af..9a2513ef95e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Schritt 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index f34c0996a3d..e8212697721 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Schritt 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index b1317df8e38..a382938d82d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Schritt 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 8a3e614e58e..8f747417333 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Schritt 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index e21fa24e90b..1f7ff9dae7a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Schritt 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 78c322d2639..1ded4b2614e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Schritt 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index fa8907ab3ff..3e09fc53e0f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Schritt 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 25f08dfe011..afbbc618b28 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Schritt 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 5442390859e..b47bae700a2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Schritt 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index 7c849807a0e..611d633a54e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Schritt 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 3e6a9b26f35..f390e6d86eb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Schritt 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 42bf57dbca7..a489265c4db 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Schritt 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 3df920459c3..5ad7a488a21 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Schritt 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index efb9772db4b..6791bbd5cb1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Schritt 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 0bef86c461b..c9ad0527d0e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Schritt 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 172d4ddcb97..88c15fa26ba 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Schritt 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 9178d66d4f7..f876da2a8e0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Schritt 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 936a709abe3..362be89bd29 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Schritt 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index ecc900d9971..e8dca429e2c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Schritt 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 1c24015d362..806cca7e7c8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Schritt 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 87c5cce8d72..fcf105ec62b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Schritt 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/italian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index d361983638c..bba8925b810 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -Devi ottenere i valori dagli elementi `select`. Tuttavia, questi valori sono stringhe e hai bisogno che siano numeri. +Devi ottenere i valori dagli elementi `select`. These values will currently be strings and you will convert them into numbers. -Dato che hai un array, puoi usare il metodo `map` per convertire ogni valore in un numero. Fallo passando a `map` una funzione callback che prende un parametro `dropdown` e restituisce `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ La funzione callback di `map` dovrebbe prendere un parametro `dropdown`. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -La funzione callback di `map` dovrebbe restituire implicitamente `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 474ef17054f..906187431f0 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Step 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 890f23dbc16..6c854c39e70 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Step 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 3a4c5da94bc..b20b111e39e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Step 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index c639608c731..7a746fb1ff2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Step 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index d5610116e96..e1b6b0a2be7 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Step 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 7bb95daa34f..af1182f807f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Step 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index 92a973738f7..62bda8dfcf2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Step 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index cf8d3299226..8cb97523221 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Step 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index 6349694fc68..7669dc83271 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Step 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index be9b7a7b0cf..f9251d18823 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 66cee481b56..f2d512ec51a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Step 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index c63582f5dda..c9fe2042a72 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Step 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index ce80fadbd0e..88c2ede498d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Step 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index f35a3a714b8..0af031437b5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Step 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index b87888d0cdb..7ffb22ddee4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Step 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index d0b205cbeb0..b6bcbec06b5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Step 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index 8036481e20a..c7498068582 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Step 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 91ee6030b89..e90ff73ec0c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Step 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index 12e732eb30f..37dfb5e7dc9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Step 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index aa1e68b8a40..1adcbf44958 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Step 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index 82a69facf42..3628eb1be15 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Step 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 22ed4f36278..03d30cd91ee 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Step 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 998d6f9b4a9..c2aabe0c5bf 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Step 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index f398f075fe9..dac52258235 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Step 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index a58cdc4f1e6..61ca94a8a9d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Step 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 5ccb80670ab..d69d62600ba 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Step 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index d04aa5ad591..ee2a33b1ed4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Step 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 9365e3e5c34..f32d650dcc8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Step 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 4b15fbc5434..b26ac623a09 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Step 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index f507e14455f..873f72ca7a2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Step 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index f04b1705995..673b97ff6e6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Step 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 0c901966b2a..c7dd8f0d7e2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Step 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 22c3394f7fa..befb559c8e9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Step 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index edba97de2c1..db5d9d893d1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Step 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 8207c7af14d..a0d807528ff 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Step 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/italian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/japanese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index 87f8590e10d..ca6fc389df1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 3671329b853..a3dda80a993 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Step 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 217765bc894..fd106d789ef 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Step 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index f7a30bf266a..4b9b5157fc2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Step 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index e3788ad15bb..3fdb8f8aafa 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Step 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 31d5e20dcc6..d76c738ba08 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Step 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 81df9394a0e..3432a2b259e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Step 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index cf8fe1b937c..81ede135357 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Step 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 07dc4918a31..8bac893bc67 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Step 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index 966cb2bac40..64cc742eee0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Step 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 19a8292a26c..f49c4237eb7 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 88ed63432d7..f542ae5f6a9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Step 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index af348cbb26e..60759f98bb6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Step 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index fb5993002b0..b47fba43e40 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Step 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 066111c2866..083ddca59e0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Step 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index 58eeb63e458..c554f123d72 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Step 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 526d3370634..9b7fd478bb4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Step 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index 95270db2dce..a1ef97d0774 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Step 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index b0a308bbef9..d171de7de49 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Step 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index f9780c78d49..dc4307540d0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Step 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 61510dfa9e4..7e728aeb33a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Step 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index 052d1dbb3ba..2a97602412f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Step 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 38f4534fa7f..5a5315565a2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Step 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 2635b1244b5..52896121e3f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Step 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index d48883f75d0..9137eb1972f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Step 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 96399956d02..17f24debba5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Step 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 7258c945ae7..12280c110a2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Step 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 69213473bc7..eda75964979 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Step 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index f6d6ec680b9..c417c49e6b0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Step 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index cdb12c5924d..cf84e23dc87 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Step 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 36afab314fc..371377f0da8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Step 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 6cc28dbbd45..b68255db916 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Step 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index fa8f649a49f..b5d9893265b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Step 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 1d011f59fc3..eca279b42fe 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Step 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 79f0de084f7..d253c95b6c6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Step 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 3a65eabf2f5..7529bfa5b37 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Step 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/japanese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/korean/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index 87f8590e10d..ca6fc389df1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 3671329b853..a3dda80a993 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Step 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 217765bc894..fd106d789ef 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Step 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index f7a30bf266a..4b9b5157fc2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Step 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index e3788ad15bb..3fdb8f8aafa 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Step 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 31d5e20dcc6..d76c738ba08 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Step 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 81df9394a0e..3432a2b259e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Step 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index cf8fe1b937c..81ede135357 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Step 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 07dc4918a31..8bac893bc67 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Step 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index 966cb2bac40..64cc742eee0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Step 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 19a8292a26c..f49c4237eb7 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 88ed63432d7..f542ae5f6a9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Step 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index af348cbb26e..60759f98bb6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Step 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index fb5993002b0..b47fba43e40 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Step 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 066111c2866..083ddca59e0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Step 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index 58eeb63e458..c554f123d72 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Step 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 526d3370634..9b7fd478bb4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Step 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index 95270db2dce..a1ef97d0774 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Step 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index b0a308bbef9..d171de7de49 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Step 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index f9780c78d49..dc4307540d0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Step 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 61510dfa9e4..7e728aeb33a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Step 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index 052d1dbb3ba..2a97602412f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Step 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 38f4534fa7f..5a5315565a2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Step 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 2635b1244b5..52896121e3f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Step 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index d48883f75d0..9137eb1972f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Step 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 96399956d02..17f24debba5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Step 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 7258c945ae7..12280c110a2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Step 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 69213473bc7..eda75964979 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Step 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index f6d6ec680b9..c417c49e6b0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Step 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index cdb12c5924d..cf84e23dc87 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Step 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 36afab314fc..371377f0da8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Step 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 6cc28dbbd45..b68255db916 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Step 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index fa8f649a49f..b5d9893265b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Step 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 1d011f59fc3..eca279b42fe 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Step 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 79f0de084f7..d253c95b6c6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Step 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 3a65eabf2f5..7529bfa5b37 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Step 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/korean/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md index 88916f3ed4c..d9264143f5e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md @@ -10,7 +10,7 @@ dashedName: build-a-cash-register Aqui, você criará um aplicativo de caixa registradora que vai devolver o troco para o cliente baseado no preço do ‘item’, a quantidade de dinheiro dada pelo consumidor, e a quantidade na gaveta da caixa registradora. Você também precisará mostrar mensagens diferentes para o usuário em diferentes cenários; por exemplo, quando o consumidor providencia muito pouco dinheiro ou quando a caixa registradora não tem o suficiente para entregar o troco corretamente. -In the `script.js` file, you have been provided with the `price` and `cid` variables. The `price` variable is the price of the item, and the `cid` variable is the cash-in-drawer, which is a 2D array listing the available currency in the cash drawer. +No arquivo `script.js`, você tem as variáveis `price` e `cid`. The `price` variable is the price of the item, and the `cid` variable is the cash-in-drawer, which is a 2D array listing the available currency in the cash drawer. The other variable you will need to add is the `cash` variable, which is the amount of cash provided by the customer for the item, which is provided via an `input` element on the page. diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index f433a8b933a..f26380ddcb7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -Você precisa obter os valores dos elementos `select`. No entanto, esses valores são strings. Você precisa que elas sejam números. +Você precisa obter os valores dos elementos `select`. These values will currently be strings and you will convert them into numbers. -Como você tem um array, você pode usar o método `map` para converter cada valor em um número. Faça isso passando uma função de callback para `map` que receba um parâmetro `dropdown` e retorne `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ A função de callback de `map` deve receber um parâmetro `dropdown`. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -A função de callback de `map` deve retornar implicitamente `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index ed121bae0e5..b495e13e55f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Passo 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 1696581895e..1488dd2e40a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Passo 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 52d0432fd76..3acffc01de4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Passo 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index f3fb023cff1..6679dd61f83 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Passo 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 93af6fc700a..4eec5a13419 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Passo 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index bcfe804d54a..793831ce0cf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Passo 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index 4cd99489091..4b32f054269 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Passo 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 21166bb58bd..ea73675e68c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Passo 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index ee63ff3e1f6..afbc16a4e49 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Passo 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 7c6d786bf38..03c9dd03f6b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Passo 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index d6b14eb546c..8d681ae410b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Passo 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index bae223ff958..cb1ca3eeb21 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Passo 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 135542f03bd..44624b40551 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Passo 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 80085ba4de5..569c18e36a8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Passo 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index a158bac120d..05e5d8daaaf 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Passo 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 55d26a6eb88..1b7ca3f561c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Passo 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index c35a09dd2f1..eef63fd0bf4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Passo 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 3ed389d2cf4..5ab9ea619ce 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Passo 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index 2f2a2c974b8..a07483eff0e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Passo 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index f78ed790c69..5119676d800 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Passo 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index db5f6b5b3a6..a5207b5b114 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Passo 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index e4f1699196b..ff563398231 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Passo 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 3669e6f14f1..8b1752dc5df 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Passo 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index 48d35c8246f..c05a6ab1432 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Passo 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index d31c1e5cf22..96f5a59861b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Passo 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index efe59d43e2a..6b372091a1c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Passo 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 6effff232bf..ac68dd89006 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Passo 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 938d5976bdb..049f16adf91 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Passo 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 297a84697fb..fe03131f2ba 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Passo 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 46d898aaee3..31e9abb3191 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Passo 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index c146aca9273..4e0afefda57 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Passo 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 6f91a857da2..af9867d0928 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Passo 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index be32482ebd8..52afbe08628 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Passo 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 9abfd564fdf..3efa73429f5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Passo 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 02f9748e096..3f9eb908908 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Passo 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index 5c272b6d6f1..5521a7ef0cb 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -The first kind of cipher you are going to build is called a *Caesar* cipher. Specifically, you will take each letter in your message, find its position in the alphabet, take the letter located after 3 positions, and replace the original letter with the new letter. - -Start by finding the position of the first letter in the string. One way is to call the `.find()` string method on the string you want to parse: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -Above, uppercase `'W'` is the character you want to locate inside the string stored in the `text` variable. The method will return `6`, which is the index of the `'W'` character inside the string stored in the `text` variable. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -At the end of your code, call `.find()` on your `alphabet` string and pass `text[0]` to the method. Note that a method is just a function that belongs to an object (you will learn more about that in another project). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ You should call the `.find()` method on the `alphabet` variable. assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -You should call the `.find()` method on the `alphabet` variable and pass `text[0]` to the method. Pay attention to place the method call at the beginning of the line. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Pay attention to place the method call at the beginning of the line. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Your code contains invalid syntax and/or invalid indentation. ```js diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 496dc995e55..d2285f294cc 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Step 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 361b8a6492d..3a5e125bb42 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Step 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 7dca8fe8cea..c4c346e5bc3 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Step 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 91e5070225c..c84dce1fe16 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Step 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 112196ec2af..9a11be89f2b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Step 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 5cc71dbedeb..8839b4b82f9 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Step 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index e3c10ad65b0..e8f7b0f5ffa 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Step 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index 249f47262d7..91cc8a963ea 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Step 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fd05b06aa74..ace18a338cd 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Step 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 5440bf43260..fc923f23951 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Step 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index 30de1df4b5e..d995a4f150b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Step 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index 8a1160d6126..3ab68d59ceb 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Step 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index 8a7c6c7d618..9eb999ef789 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Step 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 8e7fbc1b6a6..64f06c84ea2 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Step 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index a200f79112b..5903c024c89 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Step 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index bcf09bb92a7..916f3a05aac 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Step 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index 1d06984e53d..b9f0bc15fe8 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Step 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index 82d64e477e5..91d74da673a 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Step 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index b416444157f..35648bbbacc 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Step 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index 248734c2367..ef860412a27 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Step 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index fbbd30e7fa8..c036fd747cf 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Step 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index b0017d6d661..e9870c4826a 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Step 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 852560f6f3a..e5fddd61357 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Step 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index b06afbd647b..bdc61a56deb 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Step 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index eb4c83a9a12..7231a51b126 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Step 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index 437eae50a56..92734e07289 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Step 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index a036fad697d..618fa7e21bb 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Step 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index cc09702cbb1..1355edcf141 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Step 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 4be8ee2b959..5b984de7d3b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Step 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index c4c1acf579c..b6a7f0aa9c6 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Step 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 93fdb37295a..ab8d95e137d 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Step 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index 63b51a25bec..839352832e3 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Step 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 9e45e95a8cf..01181c37df7 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Step 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index 7f7106683ff..921879d9acc 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Step 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index 8d85a57c8e8..139a3fea8db 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Step 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index ec7b8876e19..b1c21af09e5 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Step 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index 481ca38fa64..2bff453ec4b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Step 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 097a56ef391..4c7bb7ab462 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Step 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index 0bdb606ae75..1eeeb3697b1 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Step 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 5b6c9873f57..5f093f3df2c 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Step 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index df5ce652cd3..fccda9a18b8 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Step 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index e1ef0a27733..2df3eb6fceb 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Step 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index c083505a1b9..5e52b90279e 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Step 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 6cf33c33ca0..02e14d9019c 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Step 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 4b8b3dfa570..7f91537aead 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Step 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index a6da36ecfde..d5bdb7ff5d1 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Step 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 1b2e4796bc6..a80c318bd1d 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Step 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index 6bb450c362b..82e1790a7d8 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Step 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 83c3825ec7f..eec0ff8b7f3 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Step 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 08eddee7f3f..5c6c8181984 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Step 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index a91c632d6fb..db091c232cc 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Step 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index c95af591bb1..2eb986a76e5 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Step 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 124fedea527..b8c910a3aa5 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Step 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 41674bfd453..61a7d37a66b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Step 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index 279c0f8818a..4fcaff7b89c 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Step 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 4d6872144e2..f8ea2a67964 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Step 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 023e118f3fe..d44b8aa0c0c 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Step 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index d86246097a6..97049b3b537 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Step 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index c28ccc7c9d1..6cfb6dee784 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Step 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 1a6769d5de5..3a91139cf33 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Step 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 7109e8566d9..bc5788b45f8 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Step 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 9d033b67402..4d7848b4be9 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Step 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index 5313366dd3a..e895a41b321 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Step 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 6a42c73d76b..f878bb6c12b 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Step 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index edb60a28a15..9b3df4758a0 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Step 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index ad7519919aa..357d56bce82 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Step 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 687715d27a9..fb843b1ccbc 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Step 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index 219aeee0c85..c65e5f72c1f 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Step 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 69f2c143ea4..d4a47183955 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Step 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index fced60437b3..e86f6b8eb32 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Step 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 80777aacaf9..cf2ba642df9 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Step 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 9284e436ec8..fc8fbf29480 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Step 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index f1414444272..7619665204a 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Step 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 1dd4ffd1ce6..383c86928d8 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Step 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index ecc5a4f74e4..728cca26c90 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Step 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index dd5e24fc3dd..18f9b54b83a 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Step 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 8cbc110eeeb..fceca72c9b3 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Step 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 248d09d91a8..70e8dcca396 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Step 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 53257ff05f3..fffb54a7d67 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Step 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index 97d646ecbdc..d3d731ffda0 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Step 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 5574910c0aa..1bb2f8f1567 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Step 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 5297910ead2..29a960e8277 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Step 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/swahili/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index be10dbbf6d1..4a2df8af857 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 71c44efe912..a3dda80a993 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Hatua ya 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 6afd752f879..fd106d789ef 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Hatua ya 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index b1f50fcb4f5..4b9b5157fc2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Hatua ya 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index 2eee9a2ff5d..3fdb8f8aafa 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Hatua ya 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index b8d507106f4..d76c738ba08 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Hatua ya 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 94b4412d4f7..3432a2b259e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Hatua ya 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index f31d8c726b5..81ede135357 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Hatua ya 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index f433ac2e7b3..8bac893bc67 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Hatua ya 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index e487e4f42f1..64cc742eee0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Hatua ya 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 41ad2914453..f49c4237eb7 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Hatua ya 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index 2fa8bc5c2eb..f542ae5f6a9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Hatua ya 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index 2ac25534730..60759f98bb6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Hatua ya 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 9116c85dbe0..b47fba43e40 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Hatua ya 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 632fafd2ebb..083ddca59e0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Hatua ya 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index c0bcb20c573..c554f123d72 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Hatua ya 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 01d82b0288b..9b7fd478bb4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Hatua ya 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index a6201949a04..a1ef97d0774 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Hatua ya 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index c2bf22084a7..d171de7de49 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Hatua ya 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index 0e360979059..dc4307540d0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Hatua ya 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index d20300131da..7e728aeb33a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Hatua ya 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index d921debd856..2a97602412f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Hatua ya 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 01770cd73ea..5a5315565a2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Hatua ya 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 867c5f40576..52896121e3f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Hatua ya 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index 2ce19f1da21..9137eb1972f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Hatua ya 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index c15eb5cc0d9..17f24debba5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Hatua ya 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 5c8ad3e8634..12280c110a2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Hatua ya 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index b1601bdb3f7..eda75964979 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Hatua ya 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 728497aba99..c417c49e6b0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Hatua ya 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 9d2fbf9c0d8..cf84e23dc87 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Hatua ya 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index 305193895e4..371377f0da8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Hatua ya 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 4c80bb00fe0..b68255db916 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Hatua ya 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index b00b19aee66..b5d9893265b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Hatua ya 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 228544593ba..eca279b42fe 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Hatua ya 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 4c154e141bc..d253c95b6c6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Hatua ya 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 212fa51c4ef..7529bfa5b37 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Hatua ya 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/swahili/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md index b974ef795ed..9dd6f070d95 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552008c0d9d9075cbec9772.md @@ -7,17 +7,16 @@ dashedName: step-13 # --description-- -Перший вид шифру, який ви створите, називається шифром *Цезаря*. Для цього потрібно взяти кожну літеру в повідомленні, знайти її позицію в алфавіті та замінити на літеру, яка розташована через 3 позиції. - -Почніть із пошуку позиції першої літери в рядку. Один зі способів — виклик методу рядка `.find()` на рядку, який потрібно проаналізувати: +You are going to use the `.find()` method to find the position in the alphabet of each letter in your message. A method is similar to a function, but it belongs to an object. ```py -text.find('W') +sentence = 'My brain hurts!' +sentence.find('r') ``` -У прикладі вище, `'W'` у верхньому регістрі є символом, який потрібно знайти в межах рядка, що зберігається в змінній `text`. Метод поверне `6`, що є індексом символу `'W'` в межах рядка, який зберігається в змінній `text`. +Above, the `.find()` method is *called on* `sentence` (the string to search in), and `'r'` (the character to locate) is passed as the argument. The `sentence.find('r')` call will return `4`, which is the index of the first occurrence of `'r'` in `sentence`. -В кінці коду викличте `.find()` на рядку `alphabet` та передайте `text[0]` до методу. Зауважте, що метод — це просто функція, яка належить об’єкту (про це ви дізнаєтеся більше в іншому проєкті). +At the end of your code, call `.find()` on `alphabet` and pass `'z'` as the argument to the method. # --hints-- @@ -33,12 +32,14 @@ assert.match(code, /find\s*\(.*\)/) assert.match(code, /alphabet\.find\s*\(.*\)/) ``` -Викличте метод `.find()` на змінній `alphabet` та передайте `text[0]` до методу. Зверніть увагу на те, щоб розмістити виклик методу на початку рядка. + +You should call the `.find()` method on the `alphabet` variable and pass `'z'` to the method. Зверніть увагу на те, щоб розмістити виклик методу на початку рядка. ```js -assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*\s*0\s*\]\s*\)/m) +assert.match(code, /^alphabet\.find\s*\(\s*('|")z\1\s*\)/m) ``` + Код містить недійсний синтаксис та/або недійсні відступи. ```js diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md index 1cf276c9602..13a11794e93 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655208d59b131e7816f18c96.md @@ -1,6 +1,6 @@ --- id: 655208d59b131e7816f18c96 -title: Крок 14 +title: Step 15 challengeType: 20 dashedName: step-15 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md index 2321f3e20d3..6ad59dc42f5 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655209a4a27dd37873c4cac3.md @@ -1,6 +1,6 @@ --- id: 655209a4a27dd37873c4cac3 -title: Крок 16 +title: Step 17 challengeType: 20 dashedName: step-17 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md index 2af8cdafb94..5a82b141c70 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520e6f2b9678799977f24d.md @@ -1,6 +1,6 @@ --- id: 65520e6f2b9678799977f24d -title: Крок 17 +title: Step 18 challengeType: 20 dashedName: step-18 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md index 7e6ad9797ea..c705bb008f3 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65520f8282faf57a0db4f7fe.md @@ -1,6 +1,6 @@ --- id: 65520f8282faf57a0db4f7fe -title: Крок 20 +title: Step 21 challengeType: 20 dashedName: step-21 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md index 907306f2006..ffadc12fbd7 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521203d7165c7b84b22ad4.md @@ -1,6 +1,6 @@ --- id: 65521203d7165c7b84b22ad4 -title: Крок 22 +title: Step 23 challengeType: 20 dashedName: step-23 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md index 380280668b2..ce6fa6b0101 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65521fc818947e800bffe48a.md @@ -1,6 +1,6 @@ --- id: 65521fc818947e800bffe48a -title: Крок 27 +title: Step 28 challengeType: 20 dashedName: step-28 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md index 0c1376194a9..7914ea010d7 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655220953ba90d80514d7ee2.md @@ -1,6 +1,6 @@ --- id: 655220953ba90d80514d7ee2 -title: Крок 28 +title: Step 29 challengeType: 20 dashedName: step-29 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md index aeb454360ef..cf188ed47aa 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65522255d5b9cd80f335c6f2.md @@ -1,6 +1,6 @@ --- id: 65522255d5b9cd80f335c6f2 -title: Крок 30 +title: Step 31 challengeType: 20 dashedName: step-31 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md index fac30eb262e..9b51e032ede 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6552487e689f6e895f658717.md @@ -1,6 +1,6 @@ --- id: 6552487e689f6e895f658717 -title: Крок 34 +title: Step 35 challengeType: 20 dashedName: step-35 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md index 13e0a51dff4..408651b74f1 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b3aa6a1938a069a91ab.md @@ -1,6 +1,6 @@ --- id: 65524b3aa6a1938a069a91ab -title: Крок 35 +title: Step 36 challengeType: 20 dashedName: step-36 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md index efb0bf885d0..0e02f8bded7 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524b790ba8558a2f1c9fe5.md @@ -1,6 +1,6 @@ --- id: 65524b790ba8558a2f1c9fe5 -title: Крок 36 +title: Step 37 challengeType: 20 dashedName: step-37 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md index be94680e4ac..58abd92a7d2 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65524d2a1a253b8bb5197ae2.md @@ -1,6 +1,6 @@ --- id: 65524d2a1a253b8bb5197ae2 -title: Крок 29 +title: Step 30 challengeType: 20 dashedName: step-30 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md index b8c85cd7714..5d70f1174ba 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655251308f31958d06cdf267.md @@ -1,6 +1,6 @@ --- id: 655251308f31958d06cdf267 -title: Крок 37 +title: Step 38 challengeType: 20 dashedName: step-38 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md index 1d6ac3feea7..7f04a2fa221 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65525e359ca28d938baa82c5.md @@ -1,6 +1,6 @@ --- id: 65525e359ca28d938baa82c5 -title: Крок 40 +title: Step 41 challengeType: 20 dashedName: step-41 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md index dc239c1e210..ca72b7b7680 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655261b2e1f2c197093f3993.md @@ -1,6 +1,6 @@ --- id: 655261b2e1f2c197093f3993 -title: Крок 42 +title: Step 43 challengeType: 20 dashedName: step-43 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md index 9b004a36997..a327396843d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553980e0527fa115c705646.md @@ -1,6 +1,6 @@ --- id: 6553980e0527fa115c705646 -title: Крок 43 +title: Step 44 challengeType: 20 dashedName: step-44 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md index ccf7b380023..0eb03cb1e29 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553995f412dd8122ed38e4a.md @@ -1,6 +1,6 @@ --- id: 6553995f412dd8122ed38e4a -title: Крок 44 +title: Step 45 challengeType: 20 dashedName: step-45 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md index aff8d332ffa..460fcfa76e7 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a44b1801991847d8cc69.md @@ -1,6 +1,6 @@ --- id: 6553a44b1801991847d8cc69 -title: Крок 48 +title: Step 49 challengeType: 20 dashedName: step-49 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md index 800838d28a4..ad114ebb32e 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a572f7a65718f1e42e18.md @@ -1,6 +1,6 @@ --- id: 6553a572f7a65718f1e42e18 -title: Крок 50 +title: Step 51 challengeType: 20 dashedName: step-51 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md index f1fb8f03ca7..046db9656be 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a755879b131a445e664c.md @@ -1,6 +1,6 @@ --- id: 6553a755879b131a445e664c -title: Крок 45 +title: Step 46 challengeType: 20 dashedName: step-46 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md index a24d44515b4..e2c266d7665 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553a7d8d05cbb1ae335a665.md @@ -1,6 +1,6 @@ --- id: 6553a7d8d05cbb1ae335a665 -title: Крок 46 +title: Step 47 challengeType: 20 dashedName: step-47 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md index 29ffa98bc1f..5ca8b18ffd4 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553ed69ece88d29594748aa.md @@ -1,6 +1,6 @@ --- id: 6553ed69ece88d29594748aa -title: Крок 51 +title: Step 52 challengeType: 20 dashedName: step-52 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md index 49e281618c0..94fbae5a085 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553efd6ada3f42aa2d75448.md @@ -1,6 +1,6 @@ --- id: 6553efd6ada3f42aa2d75448 -title: Крок 52 +title: Step 53 challengeType: 20 dashedName: step-53 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md index bd7d28944b5..f8a15f68b89 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f3fc92741c2bf8ded140.md @@ -1,6 +1,6 @@ --- id: 6553f3fc92741c2bf8ded140 -title: Крок 53 +title: Step 54 challengeType: 20 dashedName: step-54 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md index 3d4b1fcad2c..0f2b948234b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f4f66099802c6ae94613.md @@ -1,6 +1,6 @@ --- id: 6553f4f66099802c6ae94613 -title: Крок 54 +title: Step 55 challengeType: 20 dashedName: step-55 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md index f749fca7a50..ad4fb72f01d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6086add4b2cbb99fd78.md @@ -1,6 +1,6 @@ --- id: 6553f6086add4b2cbb99fd78 -title: Крок 55 +title: Step 56 challengeType: 20 dashedName: step-56 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md index e36e045e46b..b66b48379af 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f6b4ec51112d44d737c8.md @@ -1,6 +1,6 @@ --- id: 6553f6b4ec51112d44d737c8 -title: Крок 49 +title: Step 50 challengeType: 20 dashedName: step-50 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md index f5693f162a7..2d24fc08b60 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6553f8c570f9982e013a8886.md @@ -1,6 +1,6 @@ --- id: 6553f8c570f9982e013a8886 -title: Крок 56 +title: Step 57 challengeType: 20 dashedName: step-57 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md index 7ced6e31308..70cef98bd1b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655491bd5b98b813fa5bedca.md @@ -1,6 +1,6 @@ --- id: 655491bd5b98b813fa5bedca -title: Крок 57 +title: Step 58 challengeType: 20 dashedName: step-58 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md index 583beed2b2c..1004d617f04 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554930320d70414e7b6acc6.md @@ -1,6 +1,6 @@ --- id: 6554930320d70414e7b6acc6 -title: Крок 58 +title: Step 59 challengeType: 20 dashedName: step-59 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md index 578f7a0a831..ac5ceeb5c0a 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549561463f0016876e852c.md @@ -1,6 +1,6 @@ --- id: 65549561463f0016876e852c -title: Крок 59 +title: Step 60 challengeType: 20 dashedName: step-60 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md index cd034133607..fc1f45dec78 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65549f90cf78131c96ebcf28.md @@ -1,6 +1,6 @@ --- id: 65549f90cf78131c96ebcf28 -title: Крок 60 +title: Step 61 challengeType: 20 dashedName: step-61 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md index 1a9edc6a51b..c298af7fc32 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a334a40edb1fb4eff827.md @@ -1,6 +1,6 @@ --- id: 6554a334a40edb1fb4eff827 -title: Крок 61 +title: Step 62 challengeType: 20 dashedName: step-62 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md index b14ecd5dadd..5e42d12224b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a49a4f782f208abcc87e.md @@ -1,6 +1,6 @@ --- id: 6554a49a4f782f208abcc87e -title: Крок 62 +title: Step 63 challengeType: 20 dashedName: step-63 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md index d9852d58a8e..7841247c373 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a57ec0a2c52106e7ee50.md @@ -1,6 +1,6 @@ --- id: 6554a57ec0a2c52106e7ee50 -title: Крок 63 +title: Step 64 challengeType: 20 dashedName: step-64 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md index 81af4d53bad..24598e804bf 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554a88d5af937226f4a9121.md @@ -1,6 +1,6 @@ --- id: 6554a88d5af937226f4a9121 -title: Крок 64 +title: Step 65 challengeType: 20 dashedName: step-65 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md index fb50062be88..06736eb0fc2 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ac937a49be2701af4f2f.md @@ -1,6 +1,6 @@ --- id: 6554ac937a49be2701af4f2f -title: Крок 65 +title: Step 66 challengeType: 20 dashedName: step-66 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md index 827cbc4a309..df574934ea3 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554ad2463b8892748f8efdd.md @@ -1,6 +1,6 @@ --- id: 6554ad2463b8892748f8efdd -title: Крок 66 +title: Step 67 challengeType: 20 dashedName: step-67 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md index ebd4b4cb2ab..c48ac3f2236 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d0332949b133a0b35eaa.md @@ -1,6 +1,6 @@ --- id: 6554d0332949b133a0b35eaa -title: Крок 67 +title: Step 68 challengeType: 20 dashedName: step-68 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md index 841951651b6..44c2760e839 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d15c8acb5f34499ad789.md @@ -1,6 +1,6 @@ --- id: 6554d15c8acb5f34499ad789 -title: Крок 68 +title: Step 69 challengeType: 20 dashedName: step-69 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md index 22a45ee37db..3d04461c9aa 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554d25dc5ceaa354307a77e.md @@ -1,6 +1,6 @@ --- id: 6554d25dc5ceaa354307a77e -title: Крок 69 +title: Step 70 challengeType: 20 dashedName: step-70 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md index b7c3cfe8489..775f753b664 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554de295ade563a069936a1.md @@ -1,6 +1,6 @@ --- id: 6554de295ade563a069936a1 -title: Крок 70 +title: Step 71 challengeType: 20 dashedName: step-71 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md index 203216d9b4b..966e04e5922 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554dfce1683be3c0c9609a6.md @@ -1,6 +1,6 @@ --- id: 6554dfce1683be3c0c9609a6 -title: Крок 71 +title: Step 72 challengeType: 20 dashedName: step-72 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md index 3e73dbc0f78..61729964d8d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e0adc7bb193cbfdb36d5.md @@ -1,6 +1,6 @@ --- id: 6554e0adc7bb193cbfdb36d5 -title: Крок 72 +title: Step 73 challengeType: 20 dashedName: step-73 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md index 23fa9ff0240..d42ac8dfeb7 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e2ee23bfd93f2c83640f.md @@ -1,6 +1,6 @@ --- id: 6554e2ee23bfd93f2c83640f -title: Крок 73 +title: Step 74 challengeType: 20 dashedName: step-74 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md index 6cfc024722f..f949a598d11 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6554e343caea913ffba7bec6.md @@ -1,6 +1,6 @@ --- id: 6554e343caea913ffba7bec6 -title: Крок 74 +title: Step 75 challengeType: 20 dashedName: step-75 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md index 0ae87bc4950..43a8c50496b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655516e410b8e30fb4fb64e8.md @@ -1,6 +1,6 @@ --- id: 655516e410b8e30fb4fb64e8 -title: Крок 75 +title: Step 76 challengeType: 20 dashedName: step-76 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md index c644c950741..74a3e0a9fe1 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65551a628bcb7e121e32d04b.md @@ -1,6 +1,6 @@ --- id: 65551a628bcb7e121e32d04b -title: Крок 78 +title: Step 79 challengeType: 20 dashedName: step-79 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md index 701cfd64577..e6a4f04c983 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555201d9b7fc917399f9f0b.md @@ -1,6 +1,6 @@ --- id: 6555201d9b7fc917399f9f0b -title: Крок 79 +title: Step 80 challengeType: 20 dashedName: step-80 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md index 8fad07f1e1f..0a53fe9eba8 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655520c20cb1e6177b0641d6.md @@ -1,6 +1,6 @@ --- id: 655520c20cb1e6177b0641d6 -title: Крок 80 +title: Step 81 challengeType: 20 dashedName: step-81 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md index c176b8cbaa3..7778940f535 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655522883e66f618e03a9411.md @@ -1,6 +1,6 @@ --- id: 655522883e66f618e03a9411 -title: Крок 81 +title: Step 82 challengeType: 20 dashedName: step-82 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md index 30df6cfcdab..e0f827f1aa8 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555231eac4d9f19bd3d44b5.md @@ -1,6 +1,6 @@ --- id: 6555231eac4d9f19bd3d44b5 -title: Крок 82 +title: Step 83 challengeType: 20 dashedName: step-83 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md index 843fe6ecb38..e2ed6e2e717 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a111190e11f0963949e.md @@ -1,6 +1,6 @@ --- id: 65552a111190e11f0963949e -title: Крок 83 +title: Step 84 challengeType: 20 dashedName: step-84 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md index 53fe278846a..0faaa8aa317 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552a9593755e1fb2f5ab50.md @@ -1,6 +1,6 @@ --- id: 65552a9593755e1fb2f5ab50 -title: Крок 84 +title: Step 85 challengeType: 20 dashedName: step-85 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md index aaa4f94b54d..820ad829c3a 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65552b14e803731fe3c1e4ca.md @@ -1,6 +1,6 @@ --- id: 65552b14e803731fe3c1e4ca -title: Крок 85 +title: Step 86 challengeType: 20 dashedName: step-86 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md index 9e3db8411ec..67e3ffd8789 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65553159615a8123b190ee43.md @@ -1,6 +1,6 @@ --- id: 65553159615a8123b190ee43 -title: Крок 86 +title: Step 87 challengeType: 20 dashedName: step-87 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md index 9111222b728..7ce5ff273de 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d6e12c95701172b55709.md @@ -1,6 +1,6 @@ --- id: 6555d6e12c95701172b55709 -title: Крок 76 +title: Step 77 challengeType: 20 dashedName: step-77 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md index fab7a307913..21418787d2c 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555d8b0b3d20b128bdadd37.md @@ -1,6 +1,6 @@ --- id: 6555d8b0b3d20b128bdadd37 -title: Крок 77 +title: Step 78 challengeType: 20 dashedName: step-78 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md index 845cccf0ed8..b8ed497818b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555db4a7b788e15795674e5.md @@ -1,6 +1,6 @@ --- id: 6555db4a7b788e15795674e5 -title: Крок 88 +title: Step 89 challengeType: 20 dashedName: step-89 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md index 9f86a6a6076..159e8fbb201 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555df0c81300b175308557d.md @@ -1,6 +1,6 @@ --- id: 6555df0c81300b175308557d -title: Крок 89 +title: Step 90 challengeType: 20 dashedName: step-90 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md index 6d679753ce6..ae68e06c1e5 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e1bfcd374e18c6be8e58.md @@ -1,6 +1,6 @@ --- id: 6555e1bfcd374e18c6be8e58 -title: Крок 90 +title: Step 91 challengeType: 20 dashedName: step-91 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md index 81c63f27195..c36c2d5cdf4 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e3f387381a19d5e00333.md @@ -1,6 +1,6 @@ --- id: 6555e3f387381a19d5e00333 -title: Крок 91 +title: Step 92 challengeType: 20 dashedName: step-92 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md index a48a870b6df..6c8f8970c4b 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e43e783ed31a0532b1b2.md @@ -1,6 +1,6 @@ --- id: 6555e43e783ed31a0532b1b2 -title: Крок 92 +title: Step 93 challengeType: 20 dashedName: step-93 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md index 5df2fc12464..0c7bc9ec362 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e547c18a2b1a7b795bd8.md @@ -1,6 +1,6 @@ --- id: 6555e547c18a2b1a7b795bd8 -title: Крок 94 +title: Step 95 challengeType: 20 dashedName: step-95 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md index 5ce0750697e..db78be78018 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6555e5991af57d1ae0e35f0a.md @@ -1,6 +1,6 @@ --- id: 6555e5991af57d1ae0e35f0a -title: Крок 95 +title: Step 96 challengeType: 20 dashedName: step-96 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md index 1e4df3b2ca0..bb0ffb87f8c 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655619327c7b364166f8dd6f.md @@ -1,6 +1,6 @@ --- id: 655619327c7b364166f8dd6f -title: Крок 47 +title: Step 48 challengeType: 20 dashedName: step-48 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md index 98d1cdc86b6..796a3d8ddff 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/655a2a7210094920069b117c.md @@ -1,6 +1,6 @@ --- id: 655a2a7210094920069b117c -title: Крок 41 +title: Step 42 challengeType: 20 dashedName: step-42 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md index eb64c1bc8d0..e1aa475a536 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65687d2f8c7ee27b0446cef3.md @@ -1,6 +1,6 @@ --- id: 65687d2f8c7ee27b0446cef3 -title: Крок 23 +title: Step 24 challengeType: 20 dashedName: step-24 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md index 8aec7b10123..e54a1847737 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656883980318048fb11a6e3b.md @@ -1,6 +1,6 @@ --- id: 656883980318048fb11a6e3b -title: Крок 24 +title: Step 25 challengeType: 20 dashedName: step-25 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md index 801ecb00b93..b6be718987f 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656884439d4d7d929d58669d.md @@ -1,6 +1,6 @@ --- id: 656884439d4d7d929d58669d -title: Крок 25 +title: Step 26 challengeType: 20 dashedName: step-26 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md index 425ddf566e3..cec306f2980 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/656886ec4e4d9b96ded3c565.md @@ -1,6 +1,6 @@ --- id: 656886ec4e4d9b96ded3c565 -title: Крок 26 +title: Step 27 challengeType: 20 dashedName: step-27 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md index 33d3e7104f8..18545df882a 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688a50e6c998a21d8e41d3.md @@ -1,6 +1,6 @@ --- id: 65688a50e6c998a21d8e41d3 -title: Крок 31 +title: Step 32 challengeType: 20 dashedName: step-32 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md index a3472a0da06..db56e3dfdf1 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65688b5a1655a7a6caede847.md @@ -1,6 +1,6 @@ --- id: 65688b5a1655a7a6caede847 -title: Крок 32 +title: Step 33 challengeType: 20 dashedName: step-33 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md index 4d3dbcc8c94..ed2ec85e391 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568b7a40c7ba0ccbc4b4425.md @@ -1,6 +1,6 @@ --- id: 6568b7a40c7ba0ccbc4b4425 -title: Крок 33 +title: Step 34 challengeType: 20 dashedName: step-34 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md index 0b01482974e..a25b1939419 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568c86dc9193000d11ca5e0.md @@ -1,6 +1,6 @@ --- id: 6568c86dc9193000d11ca5e0 -title: Крок 39 +title: Step 40 challengeType: 20 dashedName: step-40 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md index 387fc0e9468..82d7e860ea0 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6568cc9301a0c41058ed95c5.md @@ -1,6 +1,6 @@ --- id: 6568cc9301a0c41058ed95c5 -title: Крок 38 +title: Step 39 challengeType: 20 dashedName: step-39 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md index 84e2f68ecdf..cac46824d6d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659526f3e5424b3eac4b6aa7.md @@ -1,6 +1,6 @@ --- id: 659526f3e5424b3eac4b6aa7 -title: Крок 15 +title: Step 16 challengeType: 20 dashedName: step-16 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md index 04f8ceba6d0..593f7d582bb 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65952b70924edb449faf1950.md @@ -1,6 +1,6 @@ --- id: 65952b70924edb449faf1950 -title: Крок 18 +title: Step 19 challengeType: 20 dashedName: step-19 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md index 98c90df9a1d..db817391388 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659530ca823d6c47f61daa8a.md @@ -1,6 +1,6 @@ --- id: 659530ca823d6c47f61daa8a -title: Крок 19 +title: Step 20 challengeType: 20 dashedName: step-20 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md index af274d7adb0..edaf835c9c7 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/659db3e3670d3e712be82593.md @@ -1,6 +1,6 @@ --- id: 659db3e3670d3e712be82593 -title: Крок 21 +title: Step 22 challengeType: 20 dashedName: step-22 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md index 01cb447be0f..da7cf8cda88 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a450e8fb2c9d75c7378d28.md @@ -1,6 +1,6 @@ --- id: 65a450e8fb2c9d75c7378d28 -title: Крок 87 +title: Step 88 challengeType: 20 dashedName: step-88 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md index 85ab33aa2de..53dbb673e44 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/65a51c9e000b660122b8b29e.md @@ -1,6 +1,6 @@ --- id: 65a51c9e000b660122b8b29e -title: Крок 93 +title: Step 94 challengeType: 20 dashedName: step-94 --- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md index 6cc15944f29..c83fce2ec8d 100644 --- a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-string-manipulation-by-building-a-cipher/6624e0ec0bf47017eed84b1f.md @@ -17,7 +17,7 @@ You should modify your existing `alphabet.find('z')` call passing `text[0]` to t ```js assert.match(code, /^alphabet\.find\s*\(\s*text\s*\[\s*0\s*\]\s*\)/m) -``` +``` # --seed-- diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md new file mode 100644 index 00000000000..b0807a435d7 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4eb814cc977c95cd7df0e.md @@ -0,0 +1,42 @@ +--- +id: 65c4eb814cc977c95cd7df0e +title: Step 1 +challengeType: 20 +dashedName: step-1 +--- + +# --description-- + +In this project, you are going to create a Binary Search Tree (BST). A BST is a data structure in which each node has at most two children, with the left child containing values less than the parent node and the right child containing values greater than the parent node, allowing for efficient searching and sorting operations. + +This is what a Binary Search Tree looks like: + +a binairy search tree + +Begin by defining an empty `TreeNode` class. The `TreeNode` class represents a node in a binary search tree. Use the `pass` keyword to fill the class body and avoid an error. + +# --hints-- + +You should use the `class` keyword to declare an empty class named `TreeNode`. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + a = __locals.get("TreeNode") + inspect.isclass(a) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md new file mode 100644 index 00000000000..e6308a6713f --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4ef8463f869d0eaf87c67.md @@ -0,0 +1,47 @@ +--- +id: 65c4ef8463f869d0eaf87c67 +title: Step 2 +challengeType: 20 +dashedName: step-2 +--- + +# --description-- + +Inside the `TreeNode` class, replace `pass` with an `__init__` method so that you can initialize the attributes of the object. Don't add any parameters for now. + +# --hints-- + +You should remove `pass` keyword from the `TreeNode` class and move it inside the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython(`str(_Node(_code).find_class("TreeNode"))`); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); +``` + +You should define an `__init__` method inside your `TreeNode` class. Remember to use the `pass` keyword inside. + +```js +({ + test: () => { + assert( + runPython(`_Node(_code).find_class("TreeNode").has_function("__init__")`) + ); + }, +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md new file mode 100644 index 00000000000..3eafc7519e0 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f013851cefd1a4fe4c96.md @@ -0,0 +1,38 @@ +--- +id: 65c4f013851cefd1a4fe4c96 +title: Step 3 +challengeType: 20 +dashedName: step-3 +--- + +# --description-- + +The `__init__` method takes two parameters: `self` (which represents the instance of the class being created) and `key` (the value to be stored in the node). Add those two parameters to the `__init__()` method. + +# --hints-- + +You should add the `self` parameter to the method. + +```js +({ test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*/) }); +``` + +You should add the `key` parameter to the method. + +```js +({ + test: () => assert.match(code, /def\s+__init__\s*\(\s*self\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md new file mode 100644 index 00000000000..2aceefd08c0 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f02dbd3557d23f12db62.md @@ -0,0 +1,47 @@ +--- +id: 65c4f02dbd3557d23f12db62 +title: Step 4 +challengeType: 20 +dashedName: step-4 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +This means that the `key` attribute of the `TreeNode` instance will be set to the value passed during the object's creation. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__init__").has_pass()` + ) + ); + }, +}); + +``` + +You should assign the value of the `key` parameter to the `key` attribute of the node using `self.key`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.key\s*=\s*key/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md new file mode 100644 index 00000000000..063a563c976 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f07da204f4d2f325fbd3.md @@ -0,0 +1,36 @@ +--- +id: 65c4f07da204f4d2f325fbd3 +title: Step 5 +challengeType: 20 +dashedName: step-5 +--- + +# --description-- + +Inside the `__init__` method, initialize the `left` and `right` attributes of the node to `None`. This is because when a node is first created, it doesn't have any left or right children. Remember to use the `self` keyword. + +# --hints-- + +You should assign `None` to the `left` attribute of the node using `self.left`. + +```js +({ test: () => assert.match(code, /self\.left\s*=\s*None/m) }) +``` + +You should assign `None` to the `right` attribute of the node using `self.right`. + +```js +({ test: () => assert.match(code, /self\.right\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +--fcc-editable-region-- +class TreeNode: + def __init__(self, key): + self.key = key +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md new file mode 100644 index 00000000000..bcaae8c345f --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f09e074dd8d37830ea00.md @@ -0,0 +1,42 @@ +--- +id: 65c4f09e074dd8d37830ea00 +title: Step 6 +challengeType: 20 +dashedName: step-6 +--- + +# --description-- + +Create another empty class called `BinarySearchTree` that represents a binary search tree. + +# --hints-- + +You should have a class named `BinarySearchTree`. Remember to use the `pass` keyword. + +```js +({ + test: () => { + assert(__pyodide.runPython(` + import inspect + bst = __locals.get("BinarySearchTree") + inspect.isclass(bst) + `)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md new file mode 100644 index 00000000000..5ec5b8916db --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0b82db314d3fcc0b8e1.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0b82db314d3fcc0b8e1 +title: Step 7 +challengeType: 20 +dashedName: step-7 +--- + +# --description-- + +Within the `BinarySearchTree` class, replace `pass` with an `__init__` method and add a `self` parameter to this method. + +# --hints-- + +You should remove the `pass` keyword from the `BinarySearchTree` class. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + const to_test = pyClassStr.split("\n"); + assert.notInclude(to_test[1], "pass"); + }, +}); + +``` + + +You should define an `__init__` method and add a `self` parameter to this method. Remember to use the `pass` keyword inside the method body. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+__init__\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- +class BinarySearchTree: + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md new file mode 100644 index 00000000000..737cb25ec04 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f0d32ca17ad4b1636b0e.md @@ -0,0 +1,51 @@ +--- +id: 65c4f0d32ca17ad4b1636b0e +title: Step 8 +challengeType: 20 +dashedName: step-8 +--- + +# --description-- + +Inside the `__init__` method, delete `pass` and initialize `root` to the value `None`. + +The `root` attribute represents the root node of the binary search tree. Since this is the constructor when a new `BinarySearchTree` object is created, it starts with an empty tree, so the `root` attribute is set to `None`. + +# --hints-- + +You should remove the `pass` statement from the `__init__` method. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should initialize the `root` attribute to `None` using `self.root`. + +```js +({ test: () => assert.match(code, /^\s{8}self\.root\s*=\s*None/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md new file mode 100644 index 00000000000..866bda14700 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f195de7e2ad5932be717.md @@ -0,0 +1,46 @@ +--- +id: 65c4f195de7e2ad5932be717 +title: Step 9 +challengeType: 20 +dashedName: step-9 +--- + +# --description-- + +Next, you need to define a mechanism to insert nodes in the tree. For that, you need to define an `_insert` method, which is a helper function and would be used by the actual `insert` method later on. + +This method is recursive, meaning it calls itself to traverse the tree until the appropriate location for the new node is found. + +Define an `_insert` method with the parameters `self`, `node` and `key`. + +# --hints-- + +You should define an `_insert` method within the `BinarySearchTree` class. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\([^(]*\)\s*:/m) }) +``` + +Your `_insert` method should take three parameters: `self`, `node` and `key`. + +```js +({ test: () => assert.match(code, /def\s+_insert\s*\(\s*self\s*,\s*node\s*,\s*key\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None +--fcc-editable-region-- +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md new file mode 100644 index 00000000000..790d9d24262 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f22498d22ed775ef8efb.md @@ -0,0 +1,73 @@ +--- +id: 65c4f22498d22ed775ef8efb +title: Step 10 +challengeType: 20 +dashedName: step-10 +--- + +# --description-- + +Now you need to check if the `node` parameter is `None`. If it is, this means that the method has reached a leaf node or an empty spot in the tree where the new node should be inserted. + +Inside the `_insert` method body, replace `pass` with an `if` statement that checks if `node is None`. Note that `is` is different from `==`. In Python, `is` checks for object identity. It's used to determine if two variables point to the same object in memory. In contrast to `is`, `==` determines if the values of two objects are the same, regardless of whether they are the same object in memory. + +Inside the new `if` block, return `TreeNode(key)` to create a new `TreeNode` instance with the provided key. This will become the new leaf node, effectively inserting the key into the tree. + +# --hints-- + +You should not have `pass` in your `_insert` method. + +```js +({ test: () => assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").has_pass()`)) }) + +``` + +You should write an `if` statement to check if `node is None`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}if\s+node\s+is\s+None\s*:/m)); + } +}) +``` + +You should return `TreeNode(key)` from the `if` block. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "_insert"); + const {function_body} = ins; + assert(function_body.match(/^(\s{8})if\s+node\s+is\s+None\s*:\s*^\1\s{4}return\s+TreeNode\s*\(\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md new file mode 100644 index 00000000000..e7a5069735b --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2851645e8d84d14f5d1.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2851645e8d84d14f5d1 +title: Step 11 +challengeType: 20 +dashedName: step-11 +--- + +# --description-- + +Now you need to recursively traverse the tree and insert the values using the principle for binary trees: + +- Values smaller than the key are placed in the left subtree +- Values greater than the key are placed in the right subtree + +After your existing conditional statement, write another `if` statement to check if `key` is less than `node.key`. + +# --hints-- + +You should write another if statement to check if `key` is less than `node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(` _Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + +--fcc-editable-region-- +``` + diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md new file mode 100644 index 00000000000..7437b28c6d2 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2b7178afed8e88f782f.md @@ -0,0 +1,69 @@ +--- +id: 65c4f2b7178afed8e88f782f +title: Step 12 +challengeType: 20 +dashedName: step-12 +--- + +# --description-- + +If `key` < `node.key` evaluates to `True`, then the new node should be placed in the left subtree. + +Delete `pass` and recursively call the `_insert` method with left child as the first argument and `key` as the second argument. Assign the result to the `left` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `if` block. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `self._insert` method passing `node.left` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the `left` attribute of the current node. + +```js +({ test: () => assert.match(code, /node\.left\s*=\s*self\._insert\(\s*node\.left\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None +--fcc-editable-region-- + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + pass +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md new file mode 100644 index 00000000000..016ffd10641 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f2d9fd872fd99ac659dd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f2d9fd872fd99ac659dd +title: Step 13 +challengeType: 20 +dashedName: step-13 +--- + +# --description-- + +Add an `elif` conditional statement that checks if `key` > `node.key`. + +# --hints-- + +You should add an `elif` conditional statement to check if `key > node.key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_insert").find_ifs()[1].find_conditions()[1].is_equivalent("key > node.key")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md new file mode 100644 index 00000000000..ae66a083864 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f300da28d8da361bfa93.md @@ -0,0 +1,71 @@ +--- +id: 65c4f300da28d8da361bfa93 +title: Step 14 +challengeType: 20 +dashedName: step-14 +--- + +# --description-- + +Inside your `elif` clause, replace `pass` with a call to the `_insert` method with right child of the current node as the first argument and `key` as the second argument. Assign the result to the `right` attribute of the current node. + +# --hints-- + +You should remove the `pass` keyword from the `elif` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should call the `self._insert()` method passing `node.right` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should assign the result of your `self._insert()` call to the right attribute (`node.right`) of the current node. + +```js +({ test: () => assert.match(code, /node\.right\s*=\s*self\._insert\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md new file mode 100644 index 00000000000..634a7e23549 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3258d2e4cdacc919dfd.md @@ -0,0 +1,49 @@ +--- +id: 65c4f3258d2e4cdacc919dfd +title: Step 15 +challengeType: 20 +dashedName: step-15 +--- + +# --description-- + +At the end of your `_insert` method, after the insertion process is complete, return the current node to update the tree structure at the higher levels of the recursive call stack. + + +# --hints-- + +You should return the current node outside the conditional blocks. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + +--fcc-editable-region-- + +``` + diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md new file mode 100644 index 00000000000..7c9715fa515 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f33bc3c3d8db7f732787.md @@ -0,0 +1,47 @@ +--- +id: 65c4f33bc3c3d8db7f732787 +title: Step 16 +challengeType: 20 +dashedName: step-16 +--- + +# --description-- + +Now, to perform the actual insertion, define an empty `insert` method within the `BinarySearchTree` class and give it a `self` parameter. + +# --hints-- + +You should define an `insert` method with a `self` parameter within the `BinarySearchTree` class. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /^\s{4}def\s+insert\s*\(\s*self\s*\)\s*:/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node +--fcc-editable-region-- + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md new file mode 100644 index 00000000000..a265a0f9718 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f37ba6cbcfdc77e24165.md @@ -0,0 +1,60 @@ +--- +id: 65c4f37ba6cbcfdc77e24165 +title: Step 17 +challengeType: 20 +dashedName: step-17 +--- + +# --description-- + +The `insert` method will be called by the user. In addition to the `self` parameter, it will also need a `key` parameter. This parameter will be the key value to insert into the binary search tree. + +Add `key` as the second parameter to the function definition. + +# --hints-- + +The `insert` method should contain the `self` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,/) }); +``` + +The `insert` method should contain the `key` parameter. + +```js +({ test: () => assert.match(code, /def\s+insert\s*\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + +--fcc-editable-region-- + def insert(self): + pass + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md new file mode 100644 index 00000000000..d34f6690e7e --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c4f3aee69d11dcfdbcfc00.md @@ -0,0 +1,111 @@ +--- +id: 65c4f3aee69d11dcfdbcfc00 +title: Step 18 +challengeType: 20 +dashedName: step-18 +--- + +# --description-- + +Now, inside the `insert` method, you need to call the helper method `_insert()` that we defined earlier. Here, `_insert` has encapsulated the implementation of the insertion logic. This is useful for recursion and for keeping the implementation details hidden from the user. + +Delete `pass` and assign `self._insert(self.root, key)` to `self.root`. + +Note that: + +- `self.root` passes the root node of the tree as the first argument. This is the starting point for the insertion process. +- `key`: passes the `key` value you want to insert as the second argument. + +# --hints-- + +You should remove the `pass` keyword from the `insert` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("insert").has_pass()` + ) + ); + }, +}); + +``` + +You should recursively call the `_insert()` method using `self._insert()` + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\([^(]*\)/)); + } +}) +``` + +You should pass `self.root` and `key` to your `_insert()` call. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/)); + } +}) +``` + +You should assign the return value of your `_insert()` call to `self.root`. + +```js +({ test: () => + { + const transformedCode = code.replace(/\r/g, ""); + const ins = __helpers.python.getDef("\n"+transformedCode, "insert"); + const {function_body} = ins; + assert(function_body.match(/^\s{8}self\.root\s*=\s*self\._insert\s*\(\s*self\.root\s*,\s*key\s*\)/m)); + } +}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + +--fcc-editable-region-- + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + pass + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md new file mode 100644 index 00000000000..50684dd6511 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63a4c4da62e9ae18e321a.md @@ -0,0 +1,63 @@ +--- +id: 65c63a4c4da62e9ae18e321a +title: Step 19 +challengeType: 20 +dashedName: step-19 +--- + +# --description-- + +It's time to work on the search functionality. Just like you created a helper method `_insert` for the `insert` method, you need to create a helper method `_search` for the `search` method. + +Define the `_search` method with three parameters, namely `self`,`node` and `key`. + +# --hints-- + +You should declare a `_search` method. Note the leading underscore and remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+_search/) }); +``` + +Your `_search` method should take three parameters: `self`, `node`, and `key`. + +```js +({ test: () => assert.match(code, /def\s+_search\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md new file mode 100644 index 00000000000..41f8a2d1d90 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63da2ed6769a10e141341.md @@ -0,0 +1,84 @@ +--- +id: 65c63da2ed6769a10e141341 +title: Step 20 +challengeType: 20 +dashedName: step-20 +--- + +# --description-- + +Now you are going to define a base case for the recursive search. Remove the current `pass` and write an `if` statement that checks two conditions: + +- If `node` is `None`: This indicates that the search has reached the end of a branch without finding the key. +- If `node.key == key`: This means that the key has been found in the current node. + +Combine the two conditions with the `or` operator and return the current node inside the `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_search").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if `node` is `None` or if `node.key` is equal to `key`. + +```js +({ test: () => assert.match(code, /^\s{8}if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:/m) }) +``` + +You should return `node` from the `if` block. + +```js +({ test: () => assert.match(code, /^(\s{8})if\s+node\s+is\s+None\s+or\s+node\.key\s*==\s*key\s*:\s*^\1\s{4}return\s+node/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + pass + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md new file mode 100644 index 00000000000..44d961f8280 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63df529bd15a24c187c62.md @@ -0,0 +1,67 @@ +--- +id: 65c63df529bd15a24c187c62 +title: Step 21 +challengeType: 20 +dashedName: step-21 +--- + +# --description-- + +Write another `if` statement that checks if the target key is less than the key of the current node. + +Inside the `if` block, return the result of calling the `_search` method with the left child of the current node and `key` as the arguments. + +# --hints-- + +You should write another `if` statement to check if `key` < `node.key`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +You should return `self._search(node.left, key)` from your new `if` block. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_search").find_ifs()[1].find_bodies()[0].is_equivalent("return self._search(node.left, key)")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md new file mode 100644 index 00000000000..8ac625e3841 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63e6962159fa372ecdbec.md @@ -0,0 +1,80 @@ +--- +id: 65c63e6962159fa372ecdbec +title: Step 22 +challengeType: 20 +dashedName: step-22 +--- + +# --description-- + +If the second `if` statement is not `True`, it means that the target key is greater than or equal to the current node key. + +In a binary search tree, if the target key is greater than the current node's key, the search continues in the right subtree. + +After the `if` block, return the result of calling the `_search` method with the right child of the current node and the key as arguments. + +# --hints-- + +You should recursively call the `_search` method using `self._search()`. + +```js +const after_split = code.split('return self._search(node.left, key)')[1]; +assert.match(after_split, /self\._search/); +``` + +You should pass two arguments to the call of the `_search` method: `node.right` and `key`. + +```js +({ test: () => assert.match(code, /self\._search\(\s*node\.right\s*,\s*key\s*\)/) }); +``` + +You should return the result of the `_search` method call. + +```js +({ + test: () => assert.match(code, /return\s+self\._search\(\s*node\.right\s*,\s*key\s*\)/) +}); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md new file mode 100644 index 00000000000..a13d1f88924 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63eb01b9563a4b8a046b6.md @@ -0,0 +1,69 @@ +--- +id: 65c63eb01b9563a4b8a046b6 +title: Step 23 +challengeType: 20 +dashedName: step-23 +--- + +# --description-- + +Next, define the method named `search` inside the `BinarySearchTree` class. Give the `search` method two parameters: `self` and `key`. + +# --hints-- + +You should define a method named `search`. Remember the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+search/) }); +``` + +The `search` method should take two parameters: `self` and `key`. + +```js +({ test: () => assert.match(code, /def\s+search\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + +--fcc-editable-region-- + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md new file mode 100644 index 00000000000..d64fcd799dc --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c63fd9b387f0a6c5bf6a72.md @@ -0,0 +1,90 @@ +--- +id: 65c63fd9b387f0a6c5bf6a72 +title: Step 24 +challengeType: 20 +dashedName: step-24 +--- + +# --description-- + +Inside the `search` method, delete `pass` and call the helper method `_search` with the following arguments. + +- `self.root`: This is the root of the binary search tree. The search starts from the root. +- `key`: This is the value that the user wants to find in the binary search tree. + +Internally, `search` delegates the actual search logic to the `_search` helper method that performs the actual recursive search within the binary search tree. + +# --hints-- + +You should remove the `pass` keyword from the `search` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("search").has_pass()` + ) + ); + }, +}); + +``` + +You should call the `_search` method within the `search` method. + +```js +({ test: () => assert.match(code, /self\._search\([^(]*\)/) }); +``` + +You should call the `_search` method passing `self.root` and `key` as the arguments. + +```js +({ test: () => assert.match(code, /self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + pass +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md new file mode 100644 index 00000000000..367e70eeb72 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c64057a080baa7d60523ed.md @@ -0,0 +1,65 @@ +--- +id: 65c64057a080baa7d60523ed +title: Step 25 +challengeType: 20 +dashedName: step-25 +--- + +# --description-- + +Now, make the `search` method return the result of the `_search()` call. + +# --hints-- + +You should prepend the `return` statement to your `_search()` call. + +```js +({ test: () => assert.match(code, /return\s+self\._search\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + +--fcc-editable-region-- + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + self._search(self.root, key) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md new file mode 100644 index 00000000000..4e174e9ab14 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c6409418806da8d0636ffc.md @@ -0,0 +1,84 @@ +--- +id: 65c6409418806da8d0636ffc +title: Step 26 +challengeType: 20 +dashedName: step-26 +--- + +# --description-- + +The `insert` and `search` functionalities are complete, it's time to test them. + +Note that, at this point, the nodes are not sorted and just inserted. You'll work on sorting using inorder traversal later on. + +You can create an instance of a class in Python like this: + +```python +object_name = ClassName() +``` + +Outside the class definitions, create an instance of the `BinarySearchTree` class and assign it to the variable `bst`. + + +# --hints-- + +You should create an instance of the `BinarySearchTree` class. + +```js +assert.match(code, /BinarySearchTree\(\s*\)/); +``` + +You should assign the new instance of `BinarySearchTree` to the variable `bst`. + +```js +assert.match(code, /bst\s*=\s*BinarySearchTree\(\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md new file mode 100644 index 00000000000..92af201e6bc --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c644829cfb63acf3479d09.md @@ -0,0 +1,75 @@ +--- +id: 65c644829cfb63acf3479d09 +title: Step 28 +challengeType: 20 +dashedName: step-28 +--- + +# --description-- + +Insert the nodes in the list `nodes` into the `bst` instance by iterating over the list and calling the `insert` method on each node in the list. Use `node` as the iteration variable. + +# --hints-- + +You should have a `for node in nodes` loop. + +```js +assert.match(code, /for\s+node\s+in\s+nodes/); +``` + +You should have `bst.insert(node)` inside the `for` loop. + +```js +assert.match(code, /bst\.insert/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md new file mode 100644 index 00000000000..27bf09aabc1 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c645b838e7deb080fc25e0.md @@ -0,0 +1,74 @@ +--- +id: 65c645b838e7deb080fc25e0 +title: Step 29 +challengeType: 20 +dashedName: step-29 +--- + +# --description-- + +Now, the nodes have been inserted. To see if they have been correctly inserted, you can search for a node in the tree. + +Outside the for loop, search for node `80` in the `bst` instance and add it to a `print` call. Also the first argument of the `print` function should be the `'Search for 80:'` + +# --hints-- + +You should print the result of calling `bst.search(80)` and your `print` statement should have the first argument as `'Search for 80:'`. + +```js +assert.match(code, /^print\(('|")Search for 80:('|"),\s*bst\.search\(80\)/gm); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md new file mode 100644 index 00000000000..5958483dbbb --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c646d4148ae3b2d1cbcac4.md @@ -0,0 +1,78 @@ +--- +id: 65c646d4148ae3b2d1cbcac4 +title: Step 30 +challengeType: 20 +dashedName: step-30 +--- + +# --description-- + +Note that, your search returns something like `80: <__main__.TreeNode object at 0x108b3e0>`. This is the default string representation when printing an instance of a class. + +To change that to print a useful value, define another method named `__str__` in the `TreeNode` class. It takes a single argument `self`. + +# --hints-- + +You should define a method `__str__` that takes a single argument `self`. Remember to use `pass`. + +```js +assert.match(code, /def\s+__str__\(\s*self\s*\)/); +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md new file mode 100644 index 00000000000..5420dab507a --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9ddd336596e30a4266a50.md @@ -0,0 +1,93 @@ +--- +id: 65c9ddd336596e30a4266a50 +title: Step 31 +challengeType: 20 +dashedName: step-31 +--- + +# --description-- + +In the body of the `__str__` method, delete `pass` and return the result of calling the `str()` function with `self.key` as the argument. This is the attribute of the current node object that stores the value associated with the node. + +# --hints-- + +You should remove the `pass` keyword from the `__str__` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("TreeNode").find_function("__str__").has_pass()` + ) + ); + }, +}); + +``` + +You should return the string value of `self.key` from your `__str__` method. + +```js +({ test: () => assert.match(code, /^\s{8}return\s+str\(\s*self\.key\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + +--fcc-editable-region-- + def __str__(self): + pass + +--fcc-editable-region-- + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md new file mode 100644 index 00000000000..7adbe93de9e --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65c9de201959f73591b606e6.md @@ -0,0 +1,81 @@ +--- +id: 65c9de201959f73591b606e6 +title: Step 32 +challengeType: 20 +dashedName: step-32 +--- + +# --description-- + +As you can see, now you get a readable output in the console. + +Now, comment out the `print` call. + +# --hints-- + +You should comment out the line `print('Search for 80:', bst.search(80))` + +```js +assert(code.match(/#\s*print\s*\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\s*\(\s*80\s*\)\s*\)/)); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md new file mode 100644 index 00000000000..81490fb3f11 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca03bd8eb5faf24b250c56.md @@ -0,0 +1,81 @@ +--- +id: 65ca03bd8eb5faf24b250c56 +title: Step 33 +challengeType: 20 +dashedName: step-33 +--- + +# --description-- + +The next step is to work on the deletion of nodes. For that, you would follow the same approach by first defining a helper method and then the actual method. + +Inside the `BinarySearchTree` class, define a new helper method called `_delete` that takes three parameters: `self`, `node`, and `key`. + +# --hints-- + +You should define the `_delete` method inside the `BinarySearchTree` class with the parameters `self`, `node` and `key`. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_delete\(\s*self\s*,\s*node\s*,\s*key\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md new file mode 100644 index 00000000000..57ee0f5b36e --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca05f7cba1e6fe70527534.md @@ -0,0 +1,105 @@ +--- +id: 65ca05f7cba1e6fe70527534 +title: Step 34 +challengeType: 20 +dashedName: step-34 +--- + +# --description-- + +Inside your `_delete` method, replace `pass` with an `if` statement that checks if the current `node` is `None`. + +When the current node is `None`, the key to be deleted was not found. Therefore, return `node` from your `if` block. + +# --hints-- + +You should remove the `pass` keyword from the `_delete` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").has_pass()` + ) + ); + }, +}); + +``` + +You should write an `if` statement that checks if the current `node` is `None`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /if\s+node\s+is\s+None/); +``` + +You should return `node` inside your `if` block. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /return\s+node/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md new file mode 100644 index 00000000000..ece22740487 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06475e9b8aff8ea5a5f1.md @@ -0,0 +1,82 @@ +--- +id: 65ca06475e9b8aff8ea5a5f1 +title: Step 35 +challengeType: 20 +dashedName: step-35 +--- + +# --description-- + +After your existing `if`, write another one that checks if the target key is less than the current node key. + +# --hints-- + +You should have an `if` condition that checks if `key` is less than `node.key`. Remember to use `pass`. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[0].is_equivalent("key < node.key")`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md new file mode 100644 index 00000000000..e34d8956b33 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06864129380054b55dc0.md @@ -0,0 +1,104 @@ +--- +id: 65ca06864129380054b55dc0 +title: Step 36 +challengeType: 20 +dashedName: step-36 +--- + +# --description-- + +Within the `if` block, replace `pass` with a call to the `_delete` method, passing the left child of the current node and the `key` as arguments. Assign the function call to the left node. + +# --hints-- + +You should remove the `pass` keyword from the `if` statement. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_if("key < node.key").find_bodies()[0].has_pass()` + ) + ); + }, +}); +``` + +You should call the `_delete` method with `node.left` and the `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to the left child (`node.left`) of the current node. + +```js +assert.match(code, /node\.left\s*=\s*self\._delete\(\s*node\.left\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md new file mode 100644 index 00000000000..7aa46f75d53 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca06c9f918730107c9908d.md @@ -0,0 +1,99 @@ +--- +id: 65ca06c9f918730107c9908d +title: Step 37 +challengeType: 20 +dashedName: step-37 +--- + +# --description-- + +Write an `elif` statement that checks if `key > node.key`. + +Inside your `elif` block, call the `_delete` method with the right child of the current node and `key` as the arguments and assign the result to the right node. + +# --hints-- + +You should write an `elif` statement that checks if `key > node.key`. + +```js +const after_split = code.split('def _delete(self, node, key):')[1]; +assert.match(after_split, /elif\s+key\s+>\s+node\.key/); +``` + +You should call the `_delete` method with `node.right` and `key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +You should assign the result of the `_delete()` call to `node.right`. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md new file mode 100644 index 00000000000..7c2a2ac7f25 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca071d5921760254949f76.md @@ -0,0 +1,88 @@ +--- +id: 65ca071d5921760254949f76 +title: Step 38 +challengeType: 20 +dashedName: step-38 +--- + +# --description-- + +The conditionals you wrote in the previous steps are valid for nodes with either zero or one child. The upcoming conditionals will be valid if there are 2 children. + +For that, add an `else` clause to the conditional. + +# --hints-- + +You should add an `else` clause. Remember to use the `pass` keyword. + +```js +({ test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[2].tree is None`)) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md new file mode 100644 index 00000000000..9b0f0319b89 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca075e3184180309f4c1d9.md @@ -0,0 +1,108 @@ +--- +id: 65ca075e3184180309f4c1d9 +title: Step 39 +challengeType: 20 +dashedName: step-39 +--- + +# --description-- + +Inside the `else` block, replace `pass` with an `if` statement to check if the left child of the current node is `None`. + +When `node.left` is `None`, there is no left child. Therefore, return the right child from the new `if` block as a replacement. + +# --hints-- + +You should remove the `pass` keyword from the `else` block. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_delete"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); +``` + +You should write an `if` statement that checks if `node.left` is `None`. + +```js +assert.match(code, /if\s+node\.left\s*is\s*None/); +``` + +You should return the right child of the current node. + +```js +assert.match(code, /return\s+node\.right/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md new file mode 100644 index 00000000000..87fe5f8eb8b --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0794ec3ed103bca67ed7.md @@ -0,0 +1,96 @@ +--- +id: 65ca0794ec3ed103bca67ed7 +title: Step 40 +challengeType: 20 +dashedName: step-40 +--- + +# --description-- + +Below the `if` statement, add an `elif` clause to check if the right child of the current node (`node.right`) is `None`. + +If the previous condition is met, it means there is no right child. So, return the left child of the current node from the `elif` block as a replacement. + +# --hints-- + +You should create an `elif` statement that checks if the right child of the current node is `None`. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_conditions()[3].is_equivalent("node.right is None")`))}) +``` + +You should return the left child of the current node. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_delete").find_ifs()[1].find_bodies()[3].is_equivalent("return node.left")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md new file mode 100644 index 00000000000..80090da5eb8 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca07dd6fa8840491b7a5cd.md @@ -0,0 +1,95 @@ +--- +id: 65ca07dd6fa8840491b7a5cd +title: Step 41 +challengeType: 20 +dashedName: step-41 +--- + +# --description-- + +If neither one of the previous conditions is met, it means the node has both left and right children. + +To choose the successor, you need to find the minimum value in the right subtree. The smallest value will be the in-order successor of the current node. + +To find the smallest value, create a helper function `_min_value` that takes two parameters: `self` and `node`. + +# --hints-- + +You should define the `_min_value` method with `self` and `node` as the parameters. Remember to use the `pass` keyword. + +```js +({ test: () => assert.match(code, /def\s+_min_value\(\s*self\s*,\s*node\s*\)\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md new file mode 100644 index 00000000000..b77e1672c6a --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca085a19adaa057302a3d6.md @@ -0,0 +1,108 @@ +--- +id: 65ca085a19adaa057302a3d6 +title: Step 43 +challengeType: 20 +dashedName: step-43 +--- + +# --description-- + +Inside the `while` loop body, replace `pass` with `node` and assign it the left child of the node. + +# --hints-- + +You should remove the `pass` keyword from the `while` loop. + +```js +({ + test: () => { + const pyClassStr = runPython( + `str(_Node(_code).find_class("BinarySearchTree").find_function("_min_value"))` + ); + assert.notInclude(pyClassStr, "pass"); + }, +}); + +``` + +You should assign `node.left` to `node` inside your `while` loop. + +```js +({ test: () => assert.match(code, /node\s*=\s*node\.left/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md new file mode 100644 index 00000000000..d891e852183 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca089e848eca0672b9cd77.md @@ -0,0 +1,98 @@ +--- +id: 65ca089e848eca0672b9cd77 +title: Step 45 +challengeType: 20 +dashedName: step-45 +--- + +# --description-- + +Now, back to the `_delete` method, you have to choose the successor, using the `_min_value` helper function. + +Add a `_min_value` call after your `elif` block, passing `node.right` as the argument. Assign it to the current node key. + +# --hints-- + +You should assign `self._min_value(node.right)` to `node.key` after your `elif` block. + +```js +assert.match(code, /node\.key\s*=\s*self\._min_value\(\s*node\.right\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md new file mode 100644 index 00000000000..a939e653a15 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0a1f27596a089b0363b9.md @@ -0,0 +1,121 @@ +--- +id: 65ca0a1f27596a089b0363b9 +title: Step 49 +challengeType: 20 +dashedName: step-49 +--- + +# --description-- + +Inside the `delete` method, delete `pass` and call the helper method `_delete` with the root of the Binary Search Tree and the key to delete as the arguments. + +Also, assign the result of the `_delete` method to `self.root` in the `delete` method. + +# --hints-- + +You should remove the `pass` keyword from the `delete` method. + +```js +({ test: () => { + assert.isFalse(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("delete").has_pass()`)) +}}) +``` + +Your `delete` method should call the `_delete` method with two arguments: `self.root` and `key`. + +```js +({ test: () => assert.match(code, /self\._delete\(\s*self\.root\s*,\s*key\s*\)/) }); +``` + +You should assign the result of the `_delete` method to `self.root` in the `delete` method. + +```js +const after_split = code.split('def delete(self, key):')[1]; +assert.match(after_split, /self\.root\s*=\s*self\._delete\(self\.root,\s*key\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def delete(self, key): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md new file mode 100644 index 00000000000..c84edd1747b --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0d5adf39c410cd1177cc.md @@ -0,0 +1,107 @@ +--- +id: 65ca0d5adf39c410cd1177cc +title: Step 50 +challengeType: 20 +dashedName: step-50 +--- + +# --description-- + +Now, you'll work on traversing the tree based on the in-order traversal method. In-order traversal is a depth-first binary tree traversal algorithm that visits the left subtree, the current node, and then the right subtree. + +Define the `_inorder_traversal` method within the `BinarySearchTree` class and give it three parameters: `self`, `node` and `result`. Where `node` is the current node being considered during the traversal and `result` is the list to which the keys are appended in sorted order. + +# --hints-- + +You should define a method `_inorder_traversal` that takes three parameters: `self`, `node`, and `result`. Remember to use `pass`. + +```js +assert.match(code, /def\s+_inorder_traversal\(\s*self\s*,\s*node\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md new file mode 100644 index 00000000000..5256cee4bc5 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dc5dbf42a11c3cf1098.md @@ -0,0 +1,127 @@ +--- +id: 65ca0dc5dbf42a11c3cf1098 +title: Step 51 +challengeType: 20 +dashedName: step-51 +--- + +# --description-- + +Replace `pass` with an `if` statement that checks if the current node (`node`) is not empty. Then, recursively call `_inorder_traversal` with `node.left` and `result` as the arguments. + +# --hints-- + +You should remove the existing `pass` keyword from the `_inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").has_pass()` + ) + ); + }, +}); + +``` + +Your check condition should be `if node`. + +```js +assert.match(code, /if\s+node:/); +``` + +You should call `_inorder_traversal` on the `node.left` inside the `if` block. + +```js +assert.match(code, /self\._inorder_traversal\(\s*node\.left\s*,\s*result\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md new file mode 100644 index 00000000000..563cd857428 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0dfaea3f4112afde6e26.md @@ -0,0 +1,108 @@ +--- +id: 65ca0dfaea3f4112afde6e26 +title: Step 52 +challengeType: 20 +dashedName: step-52 +--- + +# --description-- + +Still inside the `if` block, append the `key` of the current node to the `result` list. + +# --hints-- + +You should append `node.key` to the `result` list. + +```js +assert.match(code, /result\.append\(\s*node\.key\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md new file mode 100644 index 00000000000..3497130e6e7 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e2d05557a13a40b1243.md @@ -0,0 +1,111 @@ +--- +id: 65ca0e2d05557a13a40b1243 +title: Step 53 +challengeType: 20 +dashedName: step-53 +--- + +# --description-- + +Finally, recursively call the `_inorder_traversal` method on the right child of the current node. + +This recursive call explores the entire right subtree in an in-order manner. + +# --hints-- + +You should call `_inorder_traversal` passing `node.right` and `result` as the arguments. + +```js +({test: () => assert(runPython(`_Node(_code).find_class("BinarySearchTree").find_function("_inorder_traversal").find_ifs()[0].find_bodies()[0].find_body()[2].is_equivalent("self._inorder_traversal(node.right, result)")`))}) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + +--fcc-editable-region-- + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md new file mode 100644 index 00000000000..1879902f76e --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca0e8eb2c9c215269d6a66.md @@ -0,0 +1,112 @@ +--- +id: 65ca0e8eb2c9c215269d6a66 +title: Step 54 +challengeType: 20 +dashedName: step-54 +--- + +# --description-- + +The `inorder_traversal` method is responsible for performing an in-order traversal of the binary search tree. It returns the keys of the nodes in sorted order. It will use the helper method `_inorder_traversal` to achieve this. + +Create an `inorder_traversal` method that takes `self` as the only parameter. + +# --hints-- + +You should define an `inorder_traversal` method that takes `self` as the parameter. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+inorder_traversal\(\s*self\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md new file mode 100644 index 00000000000..42744401704 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca1181e5b9b41c47632127.md @@ -0,0 +1,125 @@ +--- +id: 65ca1181e5b9b41c47632127 +title: Step 55 +challengeType: 20 +dashedName: step-55 +--- + +# --description-- + +Inside the `inorder_traversal` method, replace `pass` with an empty list named `result` that will store the keys of the nodes in sorted order. + +# --hints-- + +You should remove the `pass` keyword from the `inorder_traversal` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("inorder_traversal").has_pass()` + ) + ); + }, +}); +``` + +You should initialize an empty list named `result` inside the method. + +```js +({ test: () => assert.match(code, /result\s*=\s*\[\s*\]/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + pass +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md new file mode 100644 index 00000000000..746f4b05efa --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11a86801bc1d254da83c.md @@ -0,0 +1,114 @@ +--- +id: 65ca11a86801bc1d254da83c +title: Step 56 +challengeType: 20 +dashedName: step-56 +--- + +# --description-- + +Within the `inorder_traversal` method, start the in-order traversal by calling the helper method `_inorder_traversal` and pass the BST root and the `result` list as the arguments. + +This will start the traversal from the root of the binary search tree (`self.root`), and the `result` list will be passed to accumulate the keys during the traversal. + +# --hints-- + +You should call `_inorder_traversal` and pass `self.root` and `result` as the arguments. + +```js +({ test: () => assert.match(code, /self\._inorder_traversal\(\s*self\.root\s*,\s*result\s*\)/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md new file mode 100644 index 00000000000..02502e4fd31 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca11d8f3e8a71de41d0e32.md @@ -0,0 +1,113 @@ +--- +id: 65ca11d8f3e8a71de41d0e32 +title: Step 57 +challengeType: 20 +dashedName: step-57 +--- + +# --description-- + +Finally, return the sorted list of keys. + +# --hints-- + +You should return the `result` list from your `inorder_traversal` method. + +```js +assert.match(code, /return\s+result/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) +--fcc-editable-region-- + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md new file mode 100644 index 00000000000..289d3299c23 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca120111bd521ea8b73e75.md @@ -0,0 +1,115 @@ +--- +id: 65ca120111bd521ea8b73e75 +title: Step 58 +challengeType: 20 +dashedName: step-58 +--- + +# --description-- + +Now it's time to put everything into use. Uncomment the given line of code. + +# --hints-- + +You should uncomment the `print('Search for 80:', bst.search(80))` line. + +```js +assert.match(code, /^print\(\s*'Search\s*for\s*80:\s*',\s*bst\.search\(\s*80\s*\)\s*\)/m); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +--fcc-editable-region-- + +# print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md new file mode 100644 index 00000000000..a7d75c5862d --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca294e05dc032bf8922dc7.md @@ -0,0 +1,114 @@ +--- +id: 65ca294e05dc032bf8922dc7 +title: Step 59 +challengeType: 20 +dashedName: step-59 +--- + +# --description-- + +Below the `print()` call, call the `print()` function again and pass it the string `'Inorder traversal:'` as the first argument and the `bst.inorder_traversal()` call as the second argument to print the result of the inorder traversal. + +# --hints-- + +You should call `print()` and pass the string `'Inorder traversal:'` and the `bst.inorder_traversal()` call as the arguments. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +--fcc-editable-region-- + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md new file mode 100644 index 00000000000..f5098394e2d --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca29b3a07d662de018ac13.md @@ -0,0 +1,114 @@ +--- +id: 65ca29b3a07d662de018ac13 +title: Step 60 +challengeType: 20 +dashedName: step-60 +--- + +# --description-- + +Next, call the `delete` method of `bst` and delete `40` from the binary search tree. + +# --hints-- + +You should call the `delete` method of `bst` passing `40` as the argument. + +```js +({ test: () => assert.match(code, /print\s*\(.*\)\s*^bst\.delete\s*\(\s*40\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md new file mode 100644 index 00000000000..f62c2366f4d --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a18039c942f04ddde83.md @@ -0,0 +1,119 @@ +--- +id: 65ca2a18039c942f04ddde83 +title: Step 61 +challengeType: 20 +dashedName: step-61 +--- + +# --description-- + +Confirm that `40` has been deleted. + +Call `print()` by passing the string `'Search for 40:'` as the first argument and an `bst.search(40)` call as the second argument. + +# --hints-- + +You should have `print('Search for 40:', bst.search(40))` in your code. + + +```js +({ test: () => assert.match(code, /^print\(\s*("|')Search for 40:("|')\s*,\s*bst\.search\(\s*40\s*\)\s*\)/m) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md new file mode 100644 index 00000000000..77a57dd910e --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65ca2a52d579b22feb89177f.md @@ -0,0 +1,218 @@ +--- +id: 65ca2a52d579b22feb89177f +title: Step 62 +challengeType: 20 +dashedName: step-62 +--- + +# --description-- + +As a last step, print the whole tree. + +Call `print()` by passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +With this, you have finished the implementation of the binary search tree. Great work! + +# --hints-- + + +You should call `print` passing the string `'Inorder traversal after deleting 40:'` as the first argument and an `inorder_traversal()` call as the second argument. + +```js +({ test: () => assert.match(code, /^print\s*\(\s*("|')Inorder traversal after deleting 40:\1\s*,\s*bst\.inorder_traversal\s*\(\s*\)\s*\)/m) }) +``` + + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + + return node + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + +--fcc-editable-region-- +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print('Search for 80:', bst.search(80)) + +print("Inorder traversal:", bst.inorder_traversal()) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +--fcc-editable-region-- +``` + +# --solutions-- + +```py +class TreeNode: + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + + +class BinarySearchTree: + def __init__(self): + self.root = None + + def insert(self,key): + self.root = self._insert(self.root, key) + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + node.right = self._insert(node.right, key) + return node + + def search(self, key): + return self._search(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def delete(self, key): + self.root = self._delete(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key + + def inorder_traversal(self): + result = [] + self._inorder_traversal(self.root, result) + return result + + def _inorder_traversal(self, node, result): + if node: + self._inorder_traversal(node.left, result) + result.append(node.key) + self._inorder_traversal(node.right, result) + + +bst = BinarySearchTree() +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +print("Inorder traversal:", bst.inorder_traversal()) + +print("Search for 40:", bst.search(40)) + +bst.delete(40) + +print("Search for 40:", bst.search(40)) + +print("Inorder traversal after deleting 40:", bst.inorder_traversal()) + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md new file mode 100644 index 00000000000..41137fa16cc --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65cb45d130c97cb459439fac.md @@ -0,0 +1,110 @@ +--- +id: 65cb45d130c97cb459439fac +title: Step 42 +challengeType: 20 +dashedName: step-42 +--- + +# --description-- + +To find the smallest value in the right subtree, you need to iterate through the left children of the given node until you reach the leftmost (smallest) node in the subtree. + +To do this, write a `while` loop that runs when `node.left is not None` and move `pass` inside the `while` block. This condition checks if there is a left child. As long as there is a left child, the loop continues and there is a smaller value to be found. + +# --hints-- + +you should remove the `pass` keyword from the `_min_value` method. + +```js +({ + test: () => { + assert.isFalse( + runPython( + `_Node(_code).find_class("BinarySearchTree").find_function("_min_value").has_pass()` + ) + ); + }, +}); +``` + +You should use the condition `node.left is not None` in the `while` loop. + +```js +({ test: () => assert.match(code, /while\s+node\.left\s+is\s+not\s+None\s*:/) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + pass + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md new file mode 100644 index 00000000000..6eb5ceba4a4 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a6fcb15a3a239ba35dfd.md @@ -0,0 +1,106 @@ +--- +id: 65d8a6fcb15a3a239ba35dfd +title: Step 46 +challengeType: 20 +dashedName: step-46 +--- + +# --description-- + +After finding the minimum value, you will need to recursively delete the node with the minimum value from the right subtree. + +This step ensures that the node with the minimum value is removed from the tree while maintaining the binary search tree (BST) property. + +Call the `_delete` method recursively with `node.right` and `node.key` as the arguments. Assign the return value of the `_delete()` call to the right child of the current node. + +# --hints-- + +You should call the `_delete` method recursively with `node.right` and `node.key` as the arguments. + +```js +assert.match(code, /self\._delete\(\s*node\.right\s*,\s*node\.key\s*/); +``` + +You should assign the return value of the `_delete()` call to the right child of the current node. + +```js +assert.match(code, /node\.right\s*=\s*self\._delete\(\s*node\.right\s*,\s*node\.key/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md new file mode 100644 index 00000000000..6afdfd69ba1 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a8773c816a273653fd0e.md @@ -0,0 +1,97 @@ +--- +id: 65d8a8773c816a273653fd0e +title: Step 47 +challengeType: 20 +dashedName: step-47 +--- + +# --description-- + +Finally, after your `else` clause, return the current node. + +# --hints-- + +You should return the current node after the `else` clause. + +```js +({ test: () => assert.match(code, /^(\s+)else\s*:.+?^\1return\s+node/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +# bst = BinarySearchTree() + +# nodes = [50, 30, 20, 40, 70, 60, 80] + +# for node in nodes: +# bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md new file mode 100644 index 00000000000..5916f827b77 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8a90640d40c2927ebbd94.md @@ -0,0 +1,104 @@ +--- +id: 65d8a90640d40c2927ebbd94 +title: Step 48 +challengeType: 20 +dashedName: step-48 +--- + +# --description-- + +Next, you'll work on the delete method. + +Within the `BinarySearchTree` class, define a `delete` method. It takes two parameters: `self` and `key`. + +`key` is the value that the user wants to delete from the binary search tree. + +# --hints-- + +You should define a `delete` method with two parameters: `self` and `key`. Remember to use `pass`. + +```js +({ test: () => assert.match(code, /def\s+delete\(\s*self\s*,\s*key\s*\)/) }); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + + node.key = self._min_value(node.right) + node.right = self._delete(node.right, node.key) + return node + + def _min_value(self, node): + while node.left is not None: + node = node.left + return node.key +--fcc-editable-region-- + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md new file mode 100644 index 00000000000..ce7d4f8b342 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65d8b58074495d3f94977dca.md @@ -0,0 +1,99 @@ +--- +id: 65d8b58074495d3f94977dca +title: Step 44 +challengeType: 20 +dashedName: step-44 +--- + +# --description-- + +Once the leftmost node is found (that is, when `node.left` becomes `None`), the loop exits. + +After the `while` loop, return the key of the leftmost node, which represents the minimum value in the given subtree. + +With this, you are able to get the value that will replace the node after it is deleted. + +# --hints-- + +After the `while` loop, return `node.key` as the result of the function. + +```js +({ test: () => assert.match(code, /^(\s+)while.*:.+?^\1return\s+node\.key/ms) }) +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + def __str__(self): + return str(self.key) + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + + def _delete(self, node, key): + if node is None: + return node + if key < node.key: + node.left = self._delete(node.left, key) + elif key > node.key: + node.right = self._delete(node.right, key) + else: + if node.left is None: + return node.right + elif node.right is None: + return node.left + +--fcc-editable-region-- + def _min_value(self, node): + while node.left is not None: + node = node.left + +--fcc-editable-region-- + +bst = BinarySearchTree() + +nodes = [50, 30, 20, 40, 70, 60, 80] + +for node in nodes: + bst.insert(node) + +# print('Search for 80:', bst.search(80)) + + +``` diff --git a/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md new file mode 100644 index 00000000000..1d1587f69d3 --- /dev/null +++ b/curriculum/challenges/ukrainian/07-scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/65f97131a0709033d6911558.md @@ -0,0 +1,74 @@ +--- +id: 65f97131a0709033d6911558 +title: Step 27 +challengeType: 20 +dashedName: step-27 +--- + +# --description-- + +Create a list named `nodes` with values `50, 30, 20, 40, 70, 60, 80`. + +# --hints-- + +Your list should have the values `50, 30, 20, 40, 70, 60, 80`. + +```js +assert.match(code, /\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +Your list should be assigned to nodes. + +```js +assert.match(code, /nodes\s*=\s*\[50,\s*30,\s*20,\s*40,\s*70,\s*60,\s*80\]/); +``` + +# --seed-- + +## --seed-contents-- + +```py + +class TreeNode: + + def __init__(self, key): + self.key = key + self.left = None + self.right = None + + +class BinarySearchTree: + + def __init__(self): + self.root = None + + def _insert(self, node, key): + if node is None: + return TreeNode(key) + + if key < node.key: + node.left = self._insert(node.left, key) + elif key > node.key: + + node.right = self._insert(node.right, key) + return node + + def insert(self, key): + self.root = self._insert(self.root, key) + + def _search(self, node, key): + if node is None or node.key == key: + return node + if key < node.key: + return self._search(node.left, key) + return self._search(node.right, key) + + def search(self, key): + return self._search(self.root, key) + +--fcc-editable-region-- +bst = BinarySearchTree() + + +--fcc-editable-region-- +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index 9dad21933c1..ecaba3306df 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -7,9 +7,9 @@ dashedName: step-7 # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +You need to get the values from your `select` elements. These values will currently be strings and you will convert them into numbers. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Use the `map` function to iterate over the array. Pass a callback function to `map` that takes a `dropdown` parameter and returns `dropdown.value`. # --hints-- @@ -31,10 +31,10 @@ Your `map` callback function should take a `dropdown` parameter. assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Your `map` callback function should implicitly return `dropdown.value`. ```js -assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*dropdown\.value\s*/); ``` # --seed-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index fa14db58591..5aa5142d884 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,8 +1,8 @@ --- id: 6407c303b4272606c019f338 -title: Крок 8 +title: Step 11 challengeType: 0 -dashedName: step-8 +dashedName: step-11 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index 17dc4a4d266..57b2818e806 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,8 +1,8 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Крок 9 +title: Step 12 challengeType: 0 -dashedName: step-9 +dashedName: step-12 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 2693b192dc5..4b9b5157fc2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,8 +1,8 @@ --- id: 6407c627ddc93708c8dee796 -title: Крок 10 +title: Step 13 challengeType: 0 -dashedName: step-10 +dashedName: step-13 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index cc588a4b588..3fdb8f8aafa 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,8 +1,8 @@ --- id: 6407c6a2c2159309994779a5 -title: Крок 11 +title: Step 14 challengeType: 0 -dashedName: step-11 +dashedName: step-14 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index 71ab5b8ac08..af973acb701 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,8 +1,8 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Крок 12 +title: Step 15 challengeType: 0 -dashedName: step-12 +dashedName: step-15 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 074f0720dd2..ca98225cce3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,8 +1,8 @@ --- id: 6407c722498bc80b76d29073 -title: Крок 13 +title: Step 16 challengeType: 0 -dashedName: step-13 +dashedName: step-16 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index 81bf1981b3c..06eaae983ef 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,8 +1,8 @@ --- id: 6410da6df463a606dfade96f -title: Крок 14 +title: Step 17 challengeType: 0 -dashedName: step-14 +dashedName: step-17 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index fba2e0220d9..c2df0eae4cc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,8 +1,8 @@ --- id: 6410dfb965c72108196ef24a -title: Крок 15 +title: Step 18 challengeType: 0 -dashedName: step-15 +dashedName: step-18 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index b4760335bf5..207996a098b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,8 +1,8 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Крок 16 +title: Step 19 challengeType: 0 -dashedName: step-16 +dashedName: step-19 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index cdefd37c5bc..8b2a2f13052 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,8 +1,8 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Крок 17 +title: Step 20 challengeType: 0 -dashedName: step-17 +dashedName: step-20 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index e1fabefb7e1..f542ae5f6a9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,8 +1,8 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Крок 18 +title: Step 21 challengeType: 0 -dashedName: step-18 +dashedName: step-21 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index b8d3b25fbb6..393b0f9aaf7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,8 +1,8 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Крок 19 +title: Step 22 challengeType: 0 -dashedName: step-19 +dashedName: step-22 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 8645293d687..b47fba43e40 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,8 +1,8 @@ --- id: 6410efff0ae97c0f06856511 -title: Крок 20 +title: Step 23 challengeType: 0 -dashedName: step-20 +dashedName: step-23 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md index 07b125a4ae2..6e3e2500e86 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f149110ec60fd40fcfe1.md @@ -1,8 +1,8 @@ --- id: 6410f149110ec60fd40fcfe1 -title: Крок 22 +title: Step 25 challengeType: 0 -dashedName: step-22 +dashedName: step-25 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index db1719fcdff..dc4fe4e3c13 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,8 +1,8 @@ --- id: 6410f97a721cd1144804b7a8 -title: Крок 24 +title: Step 27 challengeType: 0 -dashedName: step-24 +dashedName: step-27 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index d9169362e4d..9b7fd478bb4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,8 +1,8 @@ --- id: 6410f9a443d57414ee50fada -title: Крок 21 +title: Step 24 challengeType: 0 -dashedName: step-21 +dashedName: step-24 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md index 9b293e6c778..42c2c04fe08 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fb3b68429716a810ea4b.md @@ -1,8 +1,8 @@ --- id: 6410fb3b68429716a810ea4b -title: Крок 25 +title: Step 28 challengeType: 0 -dashedName: step-25 +dashedName: step-28 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md index 9aec529d23f..39ad2ac7818 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410fcd1f731fd17cdb101a7.md @@ -1,8 +1,8 @@ --- id: 6410fcd1f731fd17cdb101a7 -title: Крок 26 +title: Step 29 challengeType: 0 -dashedName: step-26 +dashedName: step-29 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md index 4f75ab65178..41eab7167f1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411024727181d190ef03166.md @@ -1,8 +1,8 @@ --- id: 6411024727181d190ef03166 -title: Крок 27 +title: Step 30 challengeType: 0 -dashedName: step-27 +dashedName: step-30 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md index 19179390c84..7e728aeb33a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110377201e7b1a0de0d558.md @@ -1,8 +1,8 @@ --- id: 64110377201e7b1a0de0d558 -title: Крок 23 +title: Step 26 challengeType: 0 -dashedName: step-23 +dashedName: step-26 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md index 44e2eedf9d1..2a97602412f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110727cefd3d1d9bdb0128.md @@ -1,8 +1,8 @@ --- id: 64110727cefd3d1d9bdb0128 -title: Крок 28 +title: Step 31 challengeType: 0 -dashedName: step-28 +dashedName: step-31 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md index 40119bd1bc1..5a5315565a2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411083020a3101e9514a0f5.md @@ -1,8 +1,8 @@ --- id: 6411083020a3101e9514a0f5 -title: Крок 29 +title: Step 32 challengeType: 0 -dashedName: step-29 +dashedName: step-32 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md index 6c5bbc769d6..e69463cb381 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110998bc00321fd8052ab5.md @@ -1,8 +1,8 @@ --- id: 64110998bc00321fd8052ab5 -title: Крок 30 +title: Step 33 challengeType: 0 -dashedName: step-30 +dashedName: step-33 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md index 6933deb8f5a..9137eb1972f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110a03f6a450209b01f45c.md @@ -1,8 +1,8 @@ --- id: 64110a03f6a450209b01f45c -title: Крок 31 +title: Step 34 challengeType: 0 -dashedName: step-31 +dashedName: step-34 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md index 11c87f2903d..52afe1a22c6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64110b1849454521871243ca.md @@ -1,8 +1,8 @@ --- id: 64110b1849454521871243ca -title: Крок 32 +title: Step 35 challengeType: 0 -dashedName: step-32 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md index 9717cfdff1b..2c1cd87cea3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411108bc8b9c324f66aab4c.md @@ -1,8 +1,8 @@ --- id: 6411108bc8b9c324f66aab4c -title: Крок 33 +title: Step 36 challengeType: 0 -dashedName: step-33 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md index 18b61c12aef..e75cd763afa 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641110e4fb696b259dbf0bcf.md @@ -1,8 +1,8 @@ --- id: 641110e4fb696b259dbf0bcf -title: Крок 34 +title: Step 37 challengeType: 0 -dashedName: step-34 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md index 2b9069c32c6..c417c49e6b0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6411135e9ee2fa26c882eb02.md @@ -1,8 +1,8 @@ --- id: 6411135e9ee2fa26c882eb02 -title: Крок 35 +title: Step 38 challengeType: 0 -dashedName: step-35 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md index 0f4664f4a5f..cf84e23dc87 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112c9cf53d632910ea2f9b.md @@ -1,8 +1,8 @@ --- id: 64112c9cf53d632910ea2f9b -title: Крок 36 +title: Step 39 challengeType: 0 -dashedName: step-36 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md index ef21f769ebd..371377f0da8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112cea9e6ac22a314628b0.md @@ -1,8 +1,8 @@ --- id: 64112cea9e6ac22a314628b0 -title: Крок 37 +title: Step 40 challengeType: 0 -dashedName: step-37 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md index 8e6442a5274..b68255db916 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112d0943e1bb2aef11e2d1.md @@ -1,8 +1,8 @@ --- id: 64112d0943e1bb2aef11e2d1 -title: Крок 38 +title: Step 41 challengeType: 0 -dashedName: step-38 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md index 7e30dd5f78c..b5d9893265b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64112fa63a0f812c66499a54.md @@ -1,8 +1,8 @@ --- id: 64112fa63a0f812c66499a54 -title: Крок 39 +title: Step 42 challengeType: 0 -dashedName: step-39 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md index 82f1b69ba1b..05dabde6656 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/641130423e5f512d8972dae1.md @@ -1,8 +1,8 @@ --- id: 641130423e5f512d8972dae1 -title: Крок 40 +title: Step 43 challengeType: 0 -dashedName: step-40 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md index 7a78f143f15..d253c95b6c6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113124efd2852edafaf25f.md @@ -1,8 +1,8 @@ --- id: 64113124efd2852edafaf25f -title: Крок 41 +title: Step 44 challengeType: 0 -dashedName: step-41 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md index 80ce8e9d839..7529bfa5b37 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/64113249bab9952fb2ce4469.md @@ -1,8 +1,8 @@ --- id: 64113249bab9952fb2ce4469 -title: Крок 42 +title: Step 45 challengeType: 0 -dashedName: step-42 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md new file mode 100644 index 00000000000..7f0b0bf8cd7 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621c5f02a5c272761db8661.md @@ -0,0 +1,340 @@ +--- +id: 6621c5f02a5c272761db8661 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You should use `console.log()` to print out the result of `inputValues`. Write the code for this inside the `sortInputArray` function. + +To see the result for the `inputValues` array, log out the `inputValues` array to the console. Then click on the sort button and open up the console. You should see an array of strings like this: + +```js +[ '8', '2', '4', '1', '3' ] +``` + +Before going further, make sure you observe the data type of the printed result in the console. + +In the next step, you will convert those strings into numbers. + +# --hints-- + +You should call `console.log()`. + +```js +assert.match(code, /console\.log\(.*\);?/); +``` + +You should pass `inputValues` to your `console.log()` call. + +```js +assert.match(code, /console\.log\(\s*inputValues\s*\);?/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + +} +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md new file mode 100644 index 00000000000..d785cdc7241 --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6621d0dd6798b121bd2ed823.md @@ -0,0 +1,333 @@ +--- +id: 6621d0dd6798b121bd2ed823 +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +Update your `.map()` callback to call the `Number()` function. Pass `dropdown.value` to that function call. + +Open the Console tab to see that your `inputValues` is an array of numbers now. + +# --hints-- + +You should call the `Number()` function in your `.map()` callback. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*.*\s*\)/); +``` + +You should pass `dropdown.value` to your `Number()` call. + +```js +assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*(\(\s*dropdown\s*\)|dropdown)\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => dropdown.value); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md new file mode 100644 index 00000000000..4ddc815fa4d --- /dev/null +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/662236690376072dc79d9c27.md @@ -0,0 +1,325 @@ +--- +id: 662236690376072dc79d9c27 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +Now that you have confirmed the data type of the `inputValues` elements, remove your `console.log()` call. + +# --hints-- + +You should no longer log `inputValues` to the console. + +```js +assert.notMatch(code, /console\.log\(\s*inputValues\s*\);/); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + + Number Sorter + + +
+

Number Sorter

+
+

Input:

+
+ [ +
+ + , +
+
+ + , +
+
+ + , +
+
+ + , +
+
+ +
+ ] +
+ +
+
+

Output:

+
+ [ +
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 + , +
+
+ 0 +
+ ] +
+
+
+ + + +``` + +```css +:root { + --gray-00: #ffffff; + --gray-05: #f5f6f7; + --gray-15: #d0d0d5; + --gray-75: #3b3b4f; + --gray-85: #1b1b32; + --gray-90: #0a0a23; + --blue-50: #198eee; + --error: #a94442; + --danger-color: #850000; + --danger-background: #ffadad; +} + +*, +::before, +::after { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 18px; + background-color: var(--gray-85); + color: var(--gray-05); +} + +main { + display: flex; + flex-direction: column; + align-items: center; +} + +h1 { + margin: 30px auto; +} + +h2 { + margin-bottom: 15px; +} + +form { + width: 100%; + text-align: center; + padding: 15px; +} + +fieldset { + border: 0 none; + height: 100%; + margin: auto; + display: flex; + justify-content: space-around; + align-items: center; +} + +fieldset div { + display: flex; + justify-content: center; + align-items: center; +} + +.bracket, +.comma { + font-size: 2.3em; +} + +form .comma { + margin-left: 2px; +} + +select { + font-family: inherit; + font-size: inherit; + line-height: inherit; + height: 38px; + width: 50px; + text-align: center; +} + +button { + cursor: pointer; + margin-top: 15px; + text-decoration: none; + background-image: linear-gradient(#fecc4c, #ffac33); + border: 3px solid #feac32; + padding: 10px 16px; + font-size: 23px; + width: 100%; +} + +select:focus-visible, +button:focus-visible { + outline: 3px solid var(--blue-50); +} + +.output-container { + width: 95%; + min-height: 55px; + margin-top: 25px; + border-radius: 0; + padding: 15px; + overflow-wrap: break-word; + text-align: center; +} + +.output-array { + width: 100%; + margin: auto; + display: flex; + align-items: center; + justify-content: space-around; +} + +.output-value { + font-size: 2em; +} + +.alert { + background-color: var(--danger-background); + border: 3px solid var(--danger-color); + color: var(--danger-color); +} + +@media (min-width: 550px) { + form, + .output-container { + max-width: 480px; + } + + fieldset { + max-width: 400px; + } + + .output-array { + max-width: 420px; + } +} +``` + +```js +const sortButton = document.getElementById("sort"); + +--fcc-editable-region-- +const sortInputArray = (event) => { + event.preventDefault(); + const inputValues = [...document.getElementsByClassName("values-dropdown")].map((dropdown) => Number(dropdown.value)); + console.log(inputValues); +} + +--fcc-editable-region-- + +sortButton.addEventListener("click", sortInputArray); +``` diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md index 7913f3199a4..d90798583b0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ee6e3a242da6bd579de69.md @@ -1,7 +1,7 @@ --- id: 660ee6e3a242da6bd579de69 title: Step 1 -challengeType: 0 +challengeType: 1 dashedName: step-1 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md index 8f1ee952a16..b7009681264 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660eebd83100d37862268781.md @@ -1,7 +1,7 @@ --- id: 660eebd83100d37862268781 title: Step 2 -challengeType: 0 +challengeType: 1 dashedName: step-2 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md index 8e0785f6c2a..64dd9635b30 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef0f7c4b8e68ccd1f0786.md @@ -1,7 +1,7 @@ --- id: 660ef0f7c4b8e68ccd1f0786 title: Step 3 -challengeType: 0 +challengeType: 1 dashedName: step-3 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md index d00ee2d3841..34a5eaaa68d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef19b95d3308e7dd31bb6.md @@ -1,7 +1,7 @@ --- id: 660ef19b95d3308e7dd31bb6 title: Step 4 -challengeType: 0 +challengeType: 1 dashedName: step-4 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md index f4683f8da46..a6b9467e868 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef31a5be625914a0102cd.md @@ -1,7 +1,7 @@ --- id: 660ef31a5be625914a0102cd title: Step 5 -challengeType: 0 +challengeType: 1 dashedName: step-5 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md index 2a60128389d..22b6cecafa5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5105b8ba095307a0e50.md @@ -1,7 +1,7 @@ --- id: 660ef5105b8ba095307a0e50 title: Step 6 -challengeType: 0 +challengeType: 1 dashedName: step-6 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md index d0cf996c378..e517f2ea106 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef55dd468079679ee0092.md @@ -1,7 +1,7 @@ --- id: 660ef55dd468079679ee0092 title: Step 11 -challengeType: 0 +challengeType: 1 dashedName: step-11 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md index e45d5583fe3..7093cf6efeb 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef5c1904955978a986a5c.md @@ -1,7 +1,7 @@ --- id: 660ef5c1904955978a986a5c title: Step 12 -challengeType: 0 +challengeType: 1 dashedName: step-12 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md index e10e18d4d49..380b3321010 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef6355e8f5a9e67fe5f46.md @@ -1,7 +1,7 @@ --- id: 660ef6355e8f5a9e67fe5f46 title: Step 13 -challengeType: 0 +challengeType: 1 dashedName: step-13 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md index 9b13cbd5b0f..f9e8b518e3f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660ef857f2806aa626d29d17.md @@ -1,7 +1,7 @@ --- id: 660ef857f2806aa626d29d17 title: Step 14 -challengeType: 0 +challengeType: 1 dashedName: step-14 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md index 571f5ed1e68..1e76a1ff832 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f033cf051ebb50ea3bf48.md @@ -1,7 +1,7 @@ --- id: 660f033cf051ebb50ea3bf48 title: Step 15 -challengeType: 0 +challengeType: 1 dashedName: step-15 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md index bc67f2fd2f2..24759bcc207 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f039ff313dbb696b007ca.md @@ -1,7 +1,7 @@ --- id: 660f039ff313dbb696b007ca title: Step 16 -challengeType: 0 +challengeType: 1 dashedName: step-16 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md index 37b11c5a837..48cbab858f2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f061d259bbebc37461080.md @@ -1,7 +1,7 @@ --- id: 660f061d259bbebc37461080 title: Step 17 -challengeType: 0 +challengeType: 1 dashedName: step-17 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md index b89c26a1771..035126503c4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f07d231941bc11719f664.md @@ -1,7 +1,7 @@ --- id: 660f07d231941bc11719f664 title: Step 18 -challengeType: 0 +challengeType: 1 dashedName: step-18 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md index b63cc0442a4..986974996e1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f09a2694b59c3a10ee304.md @@ -1,7 +1,7 @@ --- id: 660f09a2694b59c3a10ee304 title: Step 20 -challengeType: 0 +challengeType: 1 dashedName: step-20 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md index 9a06c3a8d49..af68df64b6d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0a55847d6cc485f29ba5.md @@ -1,7 +1,7 @@ --- id: 660f0a55847d6cc485f29ba5 title: Step 21 -challengeType: 0 +challengeType: 1 dashedName: step-21 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md index 0ed58b4231e..89b88446316 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0c34aad72dc712b97624.md @@ -1,7 +1,7 @@ --- id: 660f0c34aad72dc712b97624 title: Step 22 -challengeType: 0 +challengeType: 1 dashedName: step-22 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md index 21754a11b50..8511a7b4b45 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0da9bf1035c9097af20a.md @@ -1,7 +1,7 @@ --- id: 660f0da9bf1035c9097af20a title: Step 23 -challengeType: 0 +challengeType: 1 dashedName: step-23 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md index 2e90cbb28d8..d20b5c8d29c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0ee51d7460ce88cd248d.md @@ -1,7 +1,7 @@ --- id: 660f0ee51d7460ce88cd248d title: Step 24 -challengeType: 0 +challengeType: 1 dashedName: step-24 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md index 872acf29443..60cfd2e1d12 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f0f980e98e8cf77f1ce31.md @@ -1,7 +1,7 @@ --- id: 660f0f980e98e8cf77f1ce31 title: Step 25 -challengeType: 0 +challengeType: 1 dashedName: step-25 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md index abcd6a74295..da128763c00 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f165270622fd4ec0da3f7.md @@ -1,7 +1,7 @@ --- id: 660f165270622fd4ec0da3f7 title: Step 26 -challengeType: 0 +challengeType: 1 dashedName: step-26 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md index f2d131505ba..f4487b76c34 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17294346b7d69e79db3d.md @@ -1,7 +1,7 @@ --- id: 660f17294346b7d69e79db3d title: Step 27 -challengeType: 0 +challengeType: 1 dashedName: step-27 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md index 2083bdee843..ce1a52dbb25 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f17d4e9f227d86e834abd.md @@ -1,7 +1,7 @@ --- id: 660f17d4e9f227d86e834abd title: Step 28 -challengeType: 0 +challengeType: 1 dashedName: step-28 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md index 644584ac44c..ca69260fcca 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f18f059fe0fda192ce394.md @@ -1,7 +1,7 @@ --- id: 660f18f059fe0fda192ce394 title: Step 29 -challengeType: 0 +challengeType: 1 dashedName: step-29 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md index b12566f7931..388c05a182f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1a00ac619ddc1e259a66.md @@ -1,7 +1,7 @@ --- id: 660f1a00ac619ddc1e259a66 title: Step 30 -challengeType: 0 +challengeType: 1 dashedName: step-30 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md index 564579ea8c9..4ae0732ba75 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1b6e60bd9edf902c81fd.md @@ -1,7 +1,7 @@ --- id: 660f1b6e60bd9edf902c81fd title: Step 31 -challengeType: 0 +challengeType: 1 dashedName: step-31 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md index dae3a444593..cd152530e94 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1bf673487ae0bb25b900.md @@ -1,7 +1,7 @@ --- id: 660f1bf673487ae0bb25b900 title: Step 32 -challengeType: 0 +challengeType: 1 dashedName: step-32 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md index 8d39223e3f7..6762eef385c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1cedf3676fe26122ebf6.md @@ -1,7 +1,7 @@ --- id: 660f1cedf3676fe26122ebf6 title: Step 33 -challengeType: 0 +challengeType: 1 dashedName: step-33 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md index 659ab98baa3..954bb008dc4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f1e3f047bf4e403268713.md @@ -1,7 +1,7 @@ --- id: 660f1e3f047bf4e403268713 title: Step 34 -challengeType: 0 +challengeType: 1 dashedName: step-34 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md index b7ff38a0ef9..a0eef348dd2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f20473aef47e9b8c9afc6.md @@ -1,7 +1,7 @@ --- id: 660f20473aef47e9b8c9afc6 title: Step 35 -challengeType: 0 +challengeType: 1 dashedName: step-35 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md index 77dfe2d9c0b..9e0352a7cac 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f207334fabaeac3269c38.md @@ -1,7 +1,7 @@ --- id: 660f207334fabaeac3269c38 title: Step 36 -challengeType: 0 +challengeType: 1 dashedName: step-36 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md index 22f0d0e20e8..e6374e08472 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f229d2dbe09ef2954a4a1.md @@ -1,7 +1,7 @@ --- id: 660f229d2dbe09ef2954a4a1 title: Step 37 -challengeType: 0 +challengeType: 1 dashedName: step-37 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md index 6437723c02e..d5940eef246 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f23b53db70af0f2620e78.md @@ -1,7 +1,7 @@ --- id: 660f23b53db70af0f2620e78 title: Step 38 -challengeType: 0 +challengeType: 1 dashedName: step-38 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md index aaa93d28e66..55159888a3b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f255022991ef34ed0ee88.md @@ -1,7 +1,7 @@ --- id: 660f255022991ef34ed0ee88 title: Step 39 -challengeType: 0 +challengeType: 1 dashedName: step-39 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md index a635acb8bf2..18acc8c7cd5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f280dda5040f707c76b4a.md @@ -1,7 +1,7 @@ --- id: 660f280dda5040f707c76b4a title: Step 40 -challengeType: 0 +challengeType: 1 dashedName: step-40 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md index a53b7b420b4..9d0151b5fab 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2a70ad6225fa503e71c3.md @@ -1,7 +1,7 @@ --- id: 660f2a70ad6225fa503e71c3 title: Step 41 -challengeType: 0 +challengeType: 1 dashedName: step-41 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md index 748317bdb9e..eae0762ef8f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2b6fd54ac1fc142804dd.md @@ -1,7 +1,7 @@ --- id: 660f2b6fd54ac1fc142804dd title: Step 42 -challengeType: 0 +challengeType: 1 dashedName: step-42 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md index d255c09a39c..be7492b5d54 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2eccfe3f820304af1b39.md @@ -1,7 +1,7 @@ --- id: 660f2eccfe3f820304af1b39 title: Step 57 -challengeType: 0 +challengeType: 1 dashedName: step-57 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md index 871145578bc..2a0ebad4742 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f2fbd45b520046cac68e8.md @@ -1,7 +1,7 @@ --- id: 660f2fbd45b520046cac68e8 title: Step 58 -challengeType: 0 +challengeType: 1 dashedName: step-58 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md index 09386b488bb..0ca9b356dda 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34626216270c682e2f7b.md @@ -1,7 +1,7 @@ --- id: 660f34626216270c682e2f7b title: Step 59 -challengeType: 0 +challengeType: 1 dashedName: step-59 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md index 88162bcc52e..9606352847e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f34e99571070d56d2f231.md @@ -1,7 +1,7 @@ --- id: 660f34e99571070d56d2f231 title: Step 60 -challengeType: 0 +challengeType: 1 dashedName: step-60 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md index 8cc35656228..fcc3754c019 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f359af3e32e0f1a6880b7.md @@ -1,7 +1,7 @@ --- id: 660f359af3e32e0f1a6880b7 title: Step 61 -challengeType: 0 +challengeType: 1 dashedName: step-61 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md index da8790b115b..57110b715a9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f374d532dc41189cc9cc2.md @@ -1,7 +1,7 @@ --- id: 660f374d532dc41189cc9cc2 title: Step 62 -challengeType: 0 +challengeType: 1 dashedName: step-62 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md index 132c4573df0..f89d8c5731d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f383d4c772c12ff59904b.md @@ -1,7 +1,7 @@ --- id: 660f383d4c772c12ff59904b title: Step 63 -challengeType: 0 +challengeType: 1 dashedName: step-63 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md index b44ad81a61b..81240ad95db 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f38c34a4de6141c0c369f.md @@ -1,7 +1,7 @@ --- id: 660f38c34a4de6141c0c369f title: Step 64 -challengeType: 0 +challengeType: 1 dashedName: step-64 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md index 2e261c9b58d..1dc6448bd96 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3915b41a441537ec9f5e.md @@ -1,7 +1,7 @@ --- id: 660f3915b41a441537ec9f5e title: Step 65 -challengeType: 0 +challengeType: 1 dashedName: step-65 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md index 4c4914f9294..7a855b66937 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f39b444fd6f16d1e49c1f.md @@ -1,7 +1,7 @@ --- id: 660f39b444fd6f16d1e49c1f title: Step 66 -challengeType: 0 +challengeType: 1 dashedName: step-66 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md index c171d4cbc58..c220049f343 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3b664421471aa595170f.md @@ -1,7 +1,7 @@ --- id: 660f3b664421471aa595170f title: Step 67 -challengeType: 0 +challengeType: 1 dashedName: step-67 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md index a41d945b1ad..52664bf7307 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ba3cceef11b6ba08b59.md @@ -1,7 +1,7 @@ --- id: 660f3ba3cceef11b6ba08b59 title: Step 68 -challengeType: 0 +challengeType: 1 dashedName: step-68 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md index b3d8d3fb9ec..3306b1a478b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3ce51f70571e1c5227c8.md @@ -1,8 +1,9 @@ --- id: 660f3ce51f70571e1c5227c8 title: Step 69 -challengeType: 0 +challengeType: 1 dashedName: step-69 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md index 24e001bd9c7..ea0a831040f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f3dd626be3a1ffe27e5d1.md @@ -1,8 +1,9 @@ --- id: 660f3dd626be3a1ffe27e5d1 title: Step 70 -challengeType: 0 +challengeType: 1 dashedName: step-70 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md index af25aeed3e0..4bca76985b6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f415b76859a2736771607.md @@ -1,7 +1,7 @@ --- id: 660f415b76859a2736771607 title: Step 71 -challengeType: 0 +challengeType: 1 dashedName: step-71 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md index 10bcc18cd97..81f678e7801 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4377a359972c521d3f4b.md @@ -1,7 +1,7 @@ --- id: 660f4377a359972c521d3f4b title: Step 72 -challengeType: 0 +challengeType: 1 dashedName: step-72 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md index 81d53718a72..14efb56149c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4455f457ef2e3ec6920f.md @@ -1,7 +1,7 @@ --- id: 660f4455f457ef2e3ec6920f title: Step 73 -challengeType: 0 +challengeType: 1 dashedName: step-73 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md index 038b07f5cc8..56f8d30c3fe 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f447efc0e722f016c1be0.md @@ -1,7 +1,7 @@ --- id: 660f447efc0e722f016c1be0 title: Step 74 -challengeType: 0 +challengeType: 1 dashedName: step-74 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md index 97a31f3606f..1b4e6d3019d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f44f10ea40f300b896a5e.md @@ -1,7 +1,7 @@ --- id: 660f44f10ea40f300b896a5e title: Step 75 -challengeType: 0 +challengeType: 1 dashedName: step-75 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md index 22229053f83..c34cb0b76ad 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f455b044d3230ed971e98.md @@ -1,7 +1,7 @@ --- id: 660f455b044d3230ed971e98 title: Step 76 -challengeType: 0 +challengeType: 1 dashedName: step-76 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md index 7fdca07d541..68d1de4f932 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f45ccf4ca5c31f253005a.md @@ -1,7 +1,7 @@ --- id: 660f45ccf4ca5c31f253005a title: Step 77 -challengeType: 0 +challengeType: 1 dashedName: step-77 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md index 2c559f09b26..5e8e40d6b16 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46460f9c36330ebc07d8.md @@ -1,7 +1,7 @@ --- id: 660f46460f9c36330ebc07d8 title: Step 79 -challengeType: 0 +challengeType: 1 dashedName: step-79 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md index 3d74b015a47..7394ed4736d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f46b9c417a8341729a3ab.md @@ -1,7 +1,7 @@ --- id: 660f46b9c417a8341729a3ab title: Step 80 -challengeType: 0 +challengeType: 1 dashedName: step-80 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md index aa7120fc73a..0f93285cb97 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4774e3e0df35a68bb5f2.md @@ -1,7 +1,7 @@ --- id: 660f4774e3e0df35a68bb5f2 title: Step 81 -challengeType: 0 +challengeType: 1 dashedName: step-81 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md index de47a64d5a7..bf40abef119 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f47afe4c98536715d5fa4.md @@ -1,7 +1,7 @@ --- id: 660f47afe4c98536715d5fa4 title: Step 82 -challengeType: 0 +challengeType: 1 dashedName: step-82 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md index 6d709686e83..9c976287a58 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f487dc0c8fa38084f9754.md @@ -1,7 +1,7 @@ --- id: 660f487dc0c8fa38084f9754 title: Step 83 -challengeType: 0 +challengeType: 1 dashedName: step-83 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md index 5b84929842b..65be0857191 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48a419b40238e2b8b4d5.md @@ -1,7 +1,7 @@ --- id: 660f48a419b40238e2b8b4d5 title: Step 84 -challengeType: 0 +challengeType: 1 dashedName: step-84 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md index 2ecdca347a5..56cc168fa5b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f48e1d3682f39e81843c4.md @@ -1,7 +1,7 @@ --- id: 660f48e1d3682f39e81843c4 title: Step 85 -challengeType: 0 +challengeType: 1 dashedName: step-85 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md index 7480f3a9f9b..32fc3125716 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4934fb48f63abd5ae371.md @@ -1,7 +1,7 @@ --- id: 660f4934fb48f63abd5ae371 title: Step 86 -challengeType: 0 +challengeType: 1 dashedName: step-86 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md index 80b30184e09..92db1ece642 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4990b1caa03b9dc97a43.md @@ -1,7 +1,7 @@ --- id: 660f4990b1caa03b9dc97a43 title: Step 88 -challengeType: 0 +challengeType: 1 dashedName: step-88 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md index 41acdb3fae6..669ac645c24 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f49e32001983c90b75850.md @@ -1,7 +1,7 @@ --- id: 660f49e32001983c90b75850 title: Step 89 -challengeType: 0 +challengeType: 1 dashedName: step-89 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md index 862e8e41159..96241903ba4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a1472f8e63d76162ce5.md @@ -1,7 +1,7 @@ --- id: 660f4a1472f8e63d76162ce5 title: Step 90 -challengeType: 0 +challengeType: 1 dashedName: step-90 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md index f2afb05a763..a1cee5e6c84 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4a83373de83ea101685f.md @@ -1,7 +1,7 @@ --- id: 660f4a83373de83ea101685f title: Step 91 -challengeType: 0 +challengeType: 1 dashedName: step-91 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md index 824ba99319a..838f9438250 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4ae5b3924c3fc3373973.md @@ -1,7 +1,7 @@ --- id: 660f4ae5b3924c3fc3373973 title: Step 92 -challengeType: 0 +challengeType: 1 dashedName: step-92 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md index ca4d4311a81..971fad8f432 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b33e2a3364094ecb540.md @@ -1,7 +1,7 @@ --- id: 660f4b33e2a3364094ecb540 title: Step 93 -challengeType: 0 +challengeType: 1 dashedName: step-93 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md index 1249513fd6d..a855f00b19b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4b641290da41b2cf0dd9.md @@ -1,7 +1,7 @@ --- id: 660f4b641290da41b2cf0dd9 title: Step 94 -challengeType: 0 +challengeType: 1 dashedName: step-94 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md index e15b856a658..d81ee0b2e14 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4c3b01c44743719c99e4.md @@ -1,7 +1,7 @@ --- id: 660f4c3b01c44743719c99e4 title: Step 95 -challengeType: 0 +challengeType: 1 dashedName: step-95 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md index 4378aea4c12..925d2b77fcb 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cde8dd305450514a1cb.md @@ -1,7 +1,7 @@ --- id: 660f4cde8dd305450514a1cb title: Step 96 -challengeType: 0 +challengeType: 1 dashedName: step-96 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md index 061125e3e0b..3abd54364d2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4cffb1459d45e34902d1.md @@ -1,7 +1,7 @@ --- id: 660f4cffb1459d45e34902d1 title: Step 97 -challengeType: 0 +challengeType: 1 dashedName: step-97 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md index 5592df6525b..ff9b0ee3386 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4de78f775e480ba2e451.md @@ -1,7 +1,7 @@ --- id: 660f4de78f775e480ba2e451 title: Step 98 -challengeType: 0 +challengeType: 1 dashedName: step-98 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md index 65389830679..0dd3cc14b1e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4e74f7fd3f4a99ac2e50.md @@ -1,7 +1,7 @@ --- id: 660f4e74f7fd3f4a99ac2e50 title: Step 99 -challengeType: 0 +challengeType: 1 dashedName: step-99 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md index 3e8a6b4282e..1a3104c8c5f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4efcb8068e4cb470dca1.md @@ -1,7 +1,7 @@ --- id: 660f4efcb8068e4cb470dca1 title: Step 100 -challengeType: 0 +challengeType: 1 dashedName: step-100 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md index 371227400df..e30d808ccb6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f4f79e2a82a4e92290f44.md @@ -1,8 +1,9 @@ --- id: 660f4f79e2a82a4e92290f44 title: Step 101 -challengeType: 0 +challengeType: 1 dashedName: step-101 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md index 0daf9b0bb6d..e81f3a46070 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f505d02b2bd513a1c3468.md @@ -1,7 +1,7 @@ --- id: 660f505d02b2bd513a1c3468 title: Step 102 -challengeType: 0 +challengeType: 1 dashedName: step-102 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md index ff51f3af61d..13762b74add 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f50a21fe7645252804f2b.md @@ -1,7 +1,7 @@ --- id: 660f50a21fe7645252804f2b title: Step 103 -challengeType: 0 +challengeType: 1 dashedName: step-103 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md index abdce9cec07..d33878f034a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f5179b3b0ca558f6b4d4f.md @@ -1,7 +1,7 @@ --- id: 660f5179b3b0ca558f6b4d4f title: Step 104 -challengeType: 0 +challengeType: 1 dashedName: step-104 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md index c9a254ab766..d7d41efdd0b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f51f1df0a8757934a5796.md @@ -1,7 +1,7 @@ --- id: 660f51f1df0a8757934a5796 title: Step 105 -challengeType: 0 +challengeType: 1 dashedName: step-105 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md index af9833ba5ed..bdca358ba56 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f530d6e33d159e1bf4947.md @@ -1,7 +1,7 @@ --- id: 660f530d6e33d159e1bf4947 title: Step 106 -challengeType: 0 +challengeType: 1 dashedName: step-106 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md index 6172f5d51ce..d9ca3b954fc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f535ec33a285b33af3774.md @@ -1,7 +1,7 @@ --- id: 660f535ec33a285b33af3774 title: Step 107 -challengeType: 0 +challengeType: 1 dashedName: step-107 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md index 48e960bc110..dc683e61ce5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f53ad3d39175c5d4335ac.md @@ -1,8 +1,9 @@ --- id: 660f53ad3d39175c5d4335ac title: Step 108 -challengeType: 0 +challengeType: 1 dashedName: step-108 +removeComments: false --- # --description-- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md index 1124445d519..62d26b90248 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/660f540c2176ea5dec01306d.md @@ -1,7 +1,7 @@ --- id: 660f540c2176ea5dec01306d title: Step 109 -challengeType: 0 +challengeType: 1 dashedName: step-109 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md index fa9f4cf744e..7b352952215 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b741b54b90f0c0fb3d58.md @@ -1,7 +1,7 @@ --- id: 6610b741b54b90f0c0fb3d58 title: Step 7 -challengeType: 0 +challengeType: 1 dashedName: step-7 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md index 6a56d73254f..69250664a4e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8017d1671f2814e8c77.md @@ -1,7 +1,7 @@ --- id: 6610b8017d1671f2814e8c77 title: Step 8 -challengeType: 0 +challengeType: 1 dashedName: step-8 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md index 9c9eb49e6eb..d5bb49f25d3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b8f6a98d25f4d485a94d.md @@ -1,7 +1,7 @@ --- id: 6610b8f6a98d25f4d485a94d title: Step 9 -challengeType: 0 +challengeType: 1 dashedName: step-9 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md index 83e656f2d0b..588c6b0a014 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610b9f7619764fad5fd516d.md @@ -1,7 +1,7 @@ --- id: 6610b9f7619764fad5fd516d title: Step 10 -challengeType: 0 +challengeType: 1 dashedName: step-10 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md index a22b643ec99..eef17f600bd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bbed59bc2a0194d85533.md @@ -1,7 +1,7 @@ --- id: 6610bbed59bc2a0194d85533 title: Step 19 -challengeType: 0 +challengeType: 1 dashedName: step-19 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md index fb17f2395f0..b76be7bd139 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610bf6fa14d700beed1b109.md @@ -1,7 +1,7 @@ --- id: 6610bf6fa14d700beed1b109 title: Step 78 -challengeType: 0 +challengeType: 1 dashedName: step-78 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md index b4fa4b3195c..e8689ccac1e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c105bbdacc114d6cdc44.md @@ -1,7 +1,7 @@ --- id: 6610c105bbdacc114d6cdc44 title: Step 43 -challengeType: 0 +challengeType: 1 dashedName: step-43 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md index 703c1beae56..e2134be743a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c16c4fa0df12c0e30675.md @@ -1,7 +1,7 @@ --- id: 6610c16c4fa0df12c0e30675 title: Step 44 -challengeType: 0 +challengeType: 1 dashedName: step-44 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md index 51d60b26ea8..78ddbdee8bc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c1d97b1671140f95cfbb.md @@ -1,7 +1,7 @@ --- id: 6610c1d97b1671140f95cfbb title: Step 45 -challengeType: 0 +challengeType: 1 dashedName: step-45 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md index af8e3181b86..4dd835f22b4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c21b3ef82015573ffbbe.md @@ -1,7 +1,7 @@ --- id: 6610c21b3ef82015573ffbbe title: Step 46 -challengeType: 0 +challengeType: 1 dashedName: step-46 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md index 8e7648598f5..448303f9bfc 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c2d8d67563174fcf96dc.md @@ -1,7 +1,7 @@ --- id: 6610c2d8d67563174fcf96dc title: Step 47 -challengeType: 0 +challengeType: 1 dashedName: step-47 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md index e18c9cfef65..6dfc38a32a2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c424b7119919b62932f4.md @@ -1,7 +1,7 @@ --- id: 6610c424b7119919b62932f4 title: Step 48 -challengeType: 0 +challengeType: 1 dashedName: step-48 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md index c013e33f861..c966bf1f345 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c48c4ea0891afa7c4696.md @@ -1,7 +1,7 @@ --- id: 6610c48c4ea0891afa7c4696 title: Step 49 -challengeType: 0 +challengeType: 1 dashedName: step-49 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md index ef652edf1f5..789e445e663 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c538372aa61cc0f5b122.md @@ -1,7 +1,7 @@ --- id: 6610c538372aa61cc0f5b122 title: Step 50 -challengeType: 0 +challengeType: 1 dashedName: step-50 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md index 95e0d664173..241450f3bed 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c6541c82551f95e765ab.md @@ -1,7 +1,7 @@ --- id: 6610c6541c82551f95e765ab title: Step 51 -challengeType: 0 +challengeType: 1 dashedName: step-51 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md index b16cdbcc0c6..b60a3a05f01 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c71600966a2191d3a64a.md @@ -1,7 +1,7 @@ --- id: 6610c71600966a2191d3a64a title: Step 52 -challengeType: 0 +challengeType: 1 dashedName: step-52 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md index 9ea609ce36a..59feb5f6836 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c77d50636722e5b6be17.md @@ -1,7 +1,7 @@ --- id: 6610c77d50636722e5b6be17 title: Step 53 -challengeType: 0 +challengeType: 1 dashedName: step-53 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md index 21a28932dce..45b726efc4e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c83b52583e245a079217.md @@ -1,7 +1,7 @@ --- id: 6610c83b52583e245a079217 title: Step 54 -challengeType: 0 +challengeType: 1 dashedName: step-54 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md index da13242e1a0..e06471af2c3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c87eac0f0b256d7b037e.md @@ -1,7 +1,7 @@ --- id: 6610c87eac0f0b256d7b037e title: Step 55 -challengeType: 0 +challengeType: 1 dashedName: step-55 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md index 7c0b0f6f78f..9d329e23bf8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/6610c8cfe4cf4d278e35c156.md @@ -1,7 +1,7 @@ --- id: 6610c8cfe4cf4d278e35c156 title: Step 56 -challengeType: 0 +challengeType: 1 dashedName: step-56 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md index 95a504e23f4..9b495fe2cbd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-introductory-javascript-by-building-a-pyramid-generator/661483051820c3c1ab4595e0.md @@ -1,7 +1,7 @@ --- id: 661483051820c3c1ab4595e0 title: Step 87 -challengeType: 0 +challengeType: 1 dashedName: step-87 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md index aea676c4418..05d06ab9b7b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650300a25b6f72964ab8aca6.md @@ -15,7 +15,7 @@ To make the `id` more unique, add another hyphen and use Date.now(). console.log(Date.now()); // 1628586800000 ``` -To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result with a random number added. +To see the new result, click on the `"Add New Task"` button. Then add a title of `WALK DOG` and click on the `"Add Task"` button. Open up the console to see the result. # --hints-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5cc5a8b3897908c962f0.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5cc5a8b3897908c962f0.md index 929394b0b01..ff956c6f813 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5cc5a8b3897908c962f0.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5cc5a8b3897908c962f0.md @@ -9,9 +9,9 @@ dashedName: task-1 # --description-- -`Cybersecurity` is about keeping computers and online information safe. It stops bad people from stealing or damaging what's on computers and the internet. +`Cybersecurity` стосується захисту комп’ютерів та інформації онлайн. Саме ця безпека не дозволяє зловмисникам викрадати або пошкоджувати інформацію на комп’ютерах та в інтернеті. -For example, when you use a password to protect your email, or when a website keeps your credit card information safe, that's cybersecurity. It's important because we use computers and the internet a lot. +Наприклад, коли ви використовуєте пароль для захисту електронної пошти або вебсторінка захищає інформацію про кредитні картки — це і є кібербезпека. Це важливо, оскільки ми часто використовуємо інтернет та комп’ютери. # --fillInTheBlank-- @@ -25,7 +25,7 @@ For example, when you use a password to protect your email, or when a website ke ### --feedback-- -This word refers to the protection of internet-connected systems, including hardware, software, and data, from cyber attacks. +Це слово позначає захист систем, підключених до інтернету (включно з обладнанням, програмним забезпеченням та даними), від кібератак. # --scene-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5d955d8b2679be66a4db.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5d955d8b2679be66a4db.md index 3bee4a45160..951f9dda743 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5d955d8b2679be66a4db.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5d955d8b2679be66a4db.md @@ -9,41 +9,41 @@ dashedName: task-2 # --description-- -`What` is often used to ask for specific information. +`What` часто використовують, щоб запитати конкретну інформацію. # --question-- ## --text-- -What does Sophie want to know from James? +Що Софі хоче дізнатися від Джеймса? ## --answers-- -How James is doing +Як справи у Джеймса ### --feedback-- -Sophie is not asking about his personal well-being. +Софі не запитує про його особисті справи. --- -Why James chose his project +Чому Джеймс обрав цей проєкт ### --feedback-- -Sophie is not asking the reason he chose this project. +Софі не запитує, чому він обрав саме цей проєкт. --- -Where James works +Де працює Джеймс ### --feedback-- -Sophie is not asking where James works. +Софі не запитує, де саме Джеймс працює. --- -What James's cybersecurity project is about +Про що проєкт Джеймса з кібербезпеки ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5ef161f6777ae5eb3ba4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5ef161f6777ae5eb3ba4.md index 7f56e484543..26fdc362e88 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5ef161f6777ae5eb3ba4.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b5ef161f6777ae5eb3ba4.md @@ -9,45 +9,45 @@ dashedName: task-3 # --description-- -The preposition `for` is often used to explain the reason why we do something. Notice how `for` is followed by the reason or purpose of the action: +Прийменник `for` часто використовується для пояснення причини, чому ми щось робимо. Зверніть увагу, що після `for` завжди стоїть причина або мета дії: -`I'm studying English for my job` - `for my job` explains the reason for studying English. +`I'm studying English for my job`: `for my job` пояснює причину вивчення англійської мови. -`I go to the gym for my health` - it means they go to the gym to stay healthy. +`I go to the gym for my health`: мовець ходить в спортзал, щоб бути здоровим. # --question-- ## --text-- -Why is James checking the network in his project? +Чому Джеймс перевіряє роботу мережі для свого проєкту? ## --answers-- -For learning about networks +Щоб дізнатись більше про мережі ### --feedback-- -James might learn something new, but that's not what the context refers to. +Джеймс може дізнатися щось нове, але про це не йдеться в контексті. --- -For finding problems +Щоб знайти проблеми --- -For fun +Задля розваги ### --feedback-- -The context indicates a professional purpose. +В контексті йдеться про професійну мету. --- -For making a report +Щоб написати звіт ### --feedback-- -The sentence specifies looking for another thing +Речення вказує на пошук чогось іншого. ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b62a491cb2d7c687a1a2a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b62a491cb2d7c687a1a2a.md index b720b711cb3..90733d318da 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b62a491cb2d7c687a1a2a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b62a491cb2d7c687a1a2a.md @@ -9,41 +9,41 @@ dashedName: task-4 # --description-- -In the context of cybersecurity, being safe often means protecting against unauthorized access or attacks. +У контексті кібербезпеки, безпека часто означає захист від неавторизованого доступу або атак. # --question-- ## --text-- -Why is James checking the network in his project? +Чому Джеймс перевіряє роботу мережі для свого проєкту? ## --answers-- -To be safe from hackers +Щоб захиститися від хакерів --- -To check for network speed +Щоб перевірити швидкість мережі ### --feedback-- -Checking network speed is important, but that's not it. +Перевірка швидкості мережі важлива, але це неправильна відповідь. --- -To learn about network management +Щоб дізнатись про мережевий менеджмент ### --feedback-- -James is not focused on learning about network management. +Джеймс не зосереджений на вивченні мережевого менеджменту. --- -To prepare for a network update +Щоб підготуватися до оновлення мережі ### --feedback-- -James is not focused on updating the network. +Джеймс не зосереджений на оновленні мережі. ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b63d0da84237d16c55d7e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b63d0da84237d16c55d7e.md index 9b2533408dc..8119c1ee23f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b63d0da84237d16c55d7e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b63d0da84237d16c55d7e.md @@ -9,13 +9,13 @@ dashedName: task-5 # --description-- -The word `might` is used to express possibility or uncertainty. It's similar to `may` but often implies a lower probability. Приміром: +Слово `might` використовується для вираження можливості або невизначеності. Воно схоже на `may`, але часто означає меншу ймовірність. Наприклад: `I might go to the park` -It means there's a possibility of going to the park, but it's not certain. +Мається на увазі, що є можливість піти в парк, але це не точно. -In James's sentence, `might` suggests that there are possible problems he's looking for, but he's not sure yet. +У реченні Джеймса `might` означає, що існують можливі проблеми, які він шукає, але він ще не впевнений. # --fillInTheBlank-- @@ -29,7 +29,7 @@ In James's sentence, `might` suggests that there are possible problems he's look ### --feedback-- -This word describes the tools as not ordinary, having a specific purpose or function. +Це слово описує інструменти як незвичайні, з особливим призначенням або функцією. --- @@ -37,7 +37,7 @@ This word describes the tools as not ordinary, having a specific purpose or func ### --feedback-- -This word indicates a possibility or potential situation, not a certainty. +Це слово вказує на можливість або потенційну ситуацію, а не на впевненість. --- @@ -45,7 +45,7 @@ This word indicates a possibility or potential situation, not a certainty. ### --feedback-- -This word is used to show sequence in actions or events, indicating what happens next. +Це слово використовують, щоб показати послідовність дій або подій, вказуючи на подальші кроки. # --scene-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md index 6503b991475..6b1dc2b8d3c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-describe-your-current-project/655b6522da78357de8428a19.md @@ -9,53 +9,53 @@ dashedName: task-6 # --description-- -James uses the present continuous tense to talk about actions happening at the moment of speaking or around it. +Джеймс використовує теперішній тривалий час, щоб розповісти про дії, які відбуваються в момент мовлення або навколо нього. -The present continuous is formed with the present tense of the verb `to be` (`am/is/are`) followed by the `-ing` form of the main verb. Наприклад: +Теперішній тривалий час утворюється за допомогою дієслова `to be` у формі теперішнього часу (`am/is/are`), до якого додається основне дієслово з закінченням `-ing`. Наприклад: -`I am using` in `I am using special tools` shows an action James is currently working on. +`I am using` в `I am using special tools` показує дію, над якою зараз працює Джеймс. -This tense is often used for actions that are temporary or in progress. Some more examples include: +Цей час часто використовується для позначення дій, які є тимчасовими чи в процесі виконання. Декілька інших прикладів: -`She is studying for the interview` (she is currently focused on studying). +`She is studying for the interview` (зараз вона зосереджена на підготовці). -`They are working on a new project` (they are presently involved in the project). +`They are working on a new project` (вони в цей час беруть участь у проєкті). -`He is walking to the station` (he is in the process of walking to the station). +`He is walking to the station` (він йде до станції). # --question-- ## --text-- -Why is James using special tools? +Чому Джеймс використовує спеціальні інструменти? ## --answers-- -To make his work easier +Щоб полегшити собі роботу ### --feedback-- -While tools make work easier, that is not the main reason he is using them. +Хоча інструменти полегшують роботу, це не головна причина, чому він їх використовує. --- -To identify potential problems +Щоб виявити потенційні проблеми --- -For fun +Для розваги ### --feedback-- -The context here is professional. +Тут професійний контекст. --- -To teach Sophie about tools +Щоб розповісти Софі про інструменти ### --feedback-- -The purpose is related to network safety, not educational. +Мета пов’язана з мережевою безпекою, а не навчанням. ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md index 5ceb8eae174..735fa4e5f79 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d777c3a22758abc00a183.md @@ -1,6 +1,6 @@ --- id: 657d777c3a22758abc00a183 -title: Task 10 +title: Завдання 10 challengeType: 19 dashedName: task-10 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md index 39d091276eb..eedb3b736fd 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7892712a078b33d7e8a7.md @@ -1,6 +1,6 @@ --- id: 657d7892712a078b33d7e8a7 -title: Task 11 +title: Завдання 11 challengeType: 19 dashedName: task-11 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md index 79699dd07cc..a2e6ed30dbb 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d791a78ae2a8bb7416ad7.md @@ -1,6 +1,6 @@ --- id: 657d791a78ae2a8bb7416ad7 -title: Task 12 +title: Завдання 12 challengeType: 22 dashedName: task-12 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md index 8d49a4be0c9..ca7b362686a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7a4ad41e438c5be0a138.md @@ -1,6 +1,6 @@ --- id: 657d7a4ad41e438c5be0a138 -title: Task 13 +title: Завдання 13 challengeType: 22 dashedName: task-13 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md index 837db81930f..ef6f5901476 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d7b217b77cf8cf1969713.md @@ -1,6 +1,6 @@ --- id: 657d7b217b77cf8cf1969713 -title: Task 20 +title: Завдання 20 challengeType: 19 dashedName: task-20 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md index 206f8b8de8a..0f80b376183 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9b88332ce98fc894db2c.md @@ -1,6 +1,6 @@ --- id: 657d9b88332ce98fc894db2c -title: Task 15 +title: Завдання 15 challengeType: 22 dashedName: task-15 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md index 916a9d2623c..3e72e5647b1 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9d6b3838fa9030d5b9d8.md @@ -1,6 +1,6 @@ --- id: 657d9d6b3838fa9030d5b9d8 -title: Task 16 +title: Завдання 16 challengeType: 19 dashedName: task-16 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md index 77168ff13d1..518393d916f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9dbe3f6a1b90f79d81f2.md @@ -1,6 +1,6 @@ --- id: 657d9dbe3f6a1b90f79d81f2 -title: Task 17 +title: Завдання 17 challengeType: 19 dashedName: task-17 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md index c96d78b79e4..75703900a66 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9e7fd1b3fa915c3c1401.md @@ -1,6 +1,6 @@ --- id: 657d9e7fd1b3fa915c3c1401 -title: Task 18 +title: Завдання 18 challengeType: 19 dashedName: task-18 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md index 0789efd3c72..e550d0821ac 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9eed9f6a5a91c7c5f210.md @@ -1,6 +1,6 @@ --- id: 657d9eed9f6a5a91c7c5f210 -title: Task 19 +title: Завдання 19 challengeType: 22 dashedName: task-19 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md index e8c587ea193..7c1586b7ef3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657d9f77e8d77292246e5679.md @@ -1,6 +1,6 @@ --- id: 657d9f77e8d77292246e5679 -title: Task 21 +title: Завдання 21 challengeType: 22 dashedName: task-21 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md index ea053a3112a..e558e3eb42a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da01f0bb64c927f6d84c3.md @@ -1,6 +1,6 @@ --- id: 657da01f0bb64c927f6d84c3 -title: Task 22 +title: Завдання 22 challengeType: 19 dashedName: task-22 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md index 506753255d3..4d18166402c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0838dfc7992f94c7df9.md @@ -1,6 +1,6 @@ --- id: 657da0838dfc7992f94c7df9 -title: Task 23 +title: Завдання 23 challengeType: 19 dashedName: task-23 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md index 02935e01957..a627c344404 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da0ec9f3a5a936a6cd54d.md @@ -1,6 +1,6 @@ --- id: 657da0ec9f3a5a936a6cd54d -title: Task 24 +title: Завдання 24 challengeType: 22 dashedName: task-24 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md index d222541390f..1c1f784456d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da1d38bf3e693eb579be9.md @@ -1,6 +1,6 @@ --- id: 657da1d38bf3e693eb579be9 -title: Task 25 +title: Завдання 25 challengeType: 22 dashedName: task-25 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md index ba595a32fda..9e9aa4f96fe 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657da34294cbf695b2bfe889.md @@ -1,6 +1,6 @@ --- id: 657da34294cbf695b2bfe889 -title: Task 26 +title: Завдання 26 challengeType: 19 dashedName: task-26 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md index cb31c71043b..f2a64ad1456 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e758778ff8dc01567c9e7.md @@ -1,6 +1,6 @@ --- id: 657e758778ff8dc01567c9e7 -title: Task 27 +title: Завдання 27 challengeType: 19 dashedName: task-27 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md index d101996cebd..bfea85f8a2c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76356b6af6c07fe338c1.md @@ -1,6 +1,6 @@ --- id: 657e76356b6af6c07fe338c1 -title: Task 28 +title: Завдання 28 challengeType: 22 dashedName: task-28 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md index 20172e2185b..b9a16cad9ef 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e76d866ebcec0e44d0748.md @@ -1,6 +1,6 @@ --- id: 657e76d866ebcec0e44d0748 -title: Task 29 +title: Завдання 29 challengeType: 19 dashedName: task-29 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md index f0ecd8f4e08..29df6ba2561 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77615bb8dec146e91f96.md @@ -1,6 +1,6 @@ --- id: 657e77615bb8dec146e91f96 -title: Task 32 +title: Завдання 32 challengeType: 22 dashedName: task-32 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md index 9760e4857f0..c8ca44dd106 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e77d93552a0c1b00f775a.md @@ -1,6 +1,6 @@ --- id: 657e77d93552a0c1b00f775a -title: Task 30 +title: Завдання 30 challengeType: 19 dashedName: task-30 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md index 4c19b259117..c285ad47c76 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e786b51f7eac240e92bcc.md @@ -1,6 +1,6 @@ --- id: 657e786b51f7eac240e92bcc -title: Task 31 +title: Завдання 31 challengeType: 19 dashedName: task-31 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md index bfb740a2d08..898d2c53e39 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657e7a17f47a8fc2d037f48e.md @@ -1,6 +1,6 @@ --- id: 657e7a17f47a8fc2d037f48e -title: Task 33 +title: Завдання 33 challengeType: 19 dashedName: task-33 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md index 09e4430931c..c5b1d1a1f1f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea8c4a679bbc40a7aef26.md @@ -1,6 +1,6 @@ --- id: 657ea8c4a679bbc40a7aef26 -title: Task 34 +title: Завдання 34 challengeType: 19 dashedName: task-34 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md index 063a27766a9..fc9d581033f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea950baa4a8c48e39d031.md @@ -1,6 +1,6 @@ --- id: 657ea950baa4a8c48e39d031 -title: Task 35 +title: Завдання 35 challengeType: 22 dashedName: task-35 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md index 3b1a119cfd8..ad2c1774ddf 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ea9f6e0214dc4f84c8229.md @@ -1,6 +1,6 @@ --- id: 657ea9f6e0214dc4f84c8229 -title: Task 36 +title: Завдання 36 challengeType: 19 dashedName: task-36 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md index c50194b59ce..4ccc2ff2ca5 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec57a0ab01cc7af71f565.md @@ -1,6 +1,6 @@ --- id: 657ec57a0ab01cc7af71f565 -title: Task 37 +title: Завдання 37 challengeType: 19 dashedName: task-37 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md index 5c10c0a32ab..e7b13df125e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec62074e77dc82b0f05e7.md @@ -1,6 +1,6 @@ --- id: 657ec62074e77dc82b0f05e7 -title: Task 38 +title: Завдання 38 challengeType: 19 dashedName: task-38 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md index 5dfa23f3775..5275355ddd8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ec6ac4de4eac8bab2f2a7.md @@ -1,6 +1,6 @@ --- id: 657ec6ac4de4eac8bab2f2a7 -title: Task 39 +title: Завдання 39 challengeType: 22 dashedName: task-39 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md index 46469c037ac..2662ff0ecb3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eda6e48e0d7c92f0af163.md @@ -1,6 +1,6 @@ --- id: 657eda6e48e0d7c92f0af163 -title: Task 40 +title: Завдання 40 challengeType: 22 dashedName: task-40 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md index 14171d204fb..63750d7df37 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edbc3e12e35cfc1d80358.md @@ -1,6 +1,6 @@ --- id: 657edbc3e12e35cfc1d80358 -title: Task 41 +title: Завдання 41 challengeType: 19 dashedName: task-41 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md index 06f9c1d3f08..c0e3c90eab5 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657edc5136791ed04ffab234.md @@ -1,6 +1,6 @@ --- id: 657edc5136791ed04ffab234 -title: Task 42 +title: Завдання 42 challengeType: 19 dashedName: task-42 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md index aac463633bb..58640186a95 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee0a0c52d0ed1164a85d8.md @@ -1,6 +1,6 @@ --- id: 657ee0a0c52d0ed1164a85d8 -title: Task 43 +title: Завдання 43 challengeType: 22 dashedName: task-43 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md index 74d0a54bbec..717d8555469 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee214b9ad1ad2b6f8325c.md @@ -1,6 +1,6 @@ --- id: 657ee214b9ad1ad2b6f8325c -title: Task 44 +title: Завдання 44 challengeType: 19 dashedName: task-44 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md index 9fdb82ad764..a73cd7a014c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee25acee11cd3122e0876.md @@ -1,6 +1,6 @@ --- id: 657ee25acee11cd3122e0876 -title: Task 45 +title: Завдання 45 challengeType: 19 dashedName: task-45 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md index 40223103ff7..6d48d7635a0 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee2f44346f3d4017cc990.md @@ -1,6 +1,6 @@ --- id: 657ee2f44346f3d4017cc990 -title: Task 46 +title: Завдання 46 challengeType: 19 dashedName: task-46 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md index 5b4fe11bcbb..cc62e04de95 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee3954d64e5d465500620.md @@ -1,6 +1,6 @@ --- id: 657ee3954d64e5d465500620 -title: Task 47 +title: Завдання 47 challengeType: 19 dashedName: task-47 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md index 8d736f77387..0ff71563324 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee4171371e9d4d1402e91.md @@ -1,6 +1,6 @@ --- id: 657ee4171371e9d4d1402e91 -title: Task 48 +title: Завдання 48 challengeType: 22 dashedName: task-48 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md index 470f1aff1c6..9dcc1c6ac82 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee47c1af836d5289254d9.md @@ -1,6 +1,6 @@ --- id: 657ee47c1af836d5289254d9 -title: Task 49 +title: Завдання 49 challengeType: 19 dashedName: task-49 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md index c4b768a1d83..9eb4cdeb6f8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee51ce8dac8d5a227f758.md @@ -1,6 +1,6 @@ --- id: 657ee51ce8dac8d5a227f758 -title: Task 50 +title: Завдання 50 challengeType: 19 dashedName: task-50 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md index 7436492a5af..276e70b133c 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee5ddb47b1dd62f87d784.md @@ -1,6 +1,6 @@ --- id: 657ee5ddb47b1dd62f87d784 -title: Task 51 +title: Завдання 51 challengeType: 19 dashedName: task-51 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md index 04bcd34e56c..241a18df34a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee66dd1216ad6c61f1168.md @@ -1,6 +1,6 @@ --- id: 657ee66dd1216ad6c61f1168 -title: Task 52 +title: Завдання 52 challengeType: 22 dashedName: task-52 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md index 309e2feed3a..a8b6a9168fe 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee781258676d764a5282f.md @@ -1,6 +1,6 @@ --- id: 657ee781258676d764a5282f -title: Task 53 +title: Завдання 53 challengeType: 19 dashedName: task-53 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md index 023bf238948..09036d1dc72 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee8a9a195b8d8756ca5e1.md @@ -1,6 +1,6 @@ --- id: 657ee8a9a195b8d8756ca5e1 -title: Task 54 +title: Завдання 54 challengeType: 22 dashedName: task-54 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md index 208a950f0d5..a74998347d0 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ee957cb4719d9031a0be4.md @@ -1,6 +1,6 @@ --- id: 657ee957cb4719d9031a0be4 -title: Task 55 +title: Завдання 55 challengeType: 22 dashedName: task-55 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md index 5821dfc0410..b0099d87d10 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eeb163e1993d9e342d661.md @@ -1,6 +1,6 @@ --- id: 657eeb163e1993d9e342d661 -title: Task 57 +title: Завдання 57 challengeType: 19 dashedName: task-57 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md index fbbbfb411c7..f3b250493be 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eebaa042b5cda6ec2dac9.md @@ -1,6 +1,6 @@ --- id: 657eebaa042b5cda6ec2dac9 -title: Task 58 +title: Завдання 58 challengeType: 22 dashedName: task-58 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md index 47573510d00..5d0a43dd664 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eec0a21bc7adada04453e.md @@ -1,6 +1,6 @@ --- id: 657eec0a21bc7adada04453e -title: Task 59 +title: Завдання 59 challengeType: 19 dashedName: task-59 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md index 7cf33efa37c..eea57c25de6 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eecb3b368badb3cc7fe4c.md @@ -1,6 +1,6 @@ --- id: 657eecb3b368badb3cc7fe4c -title: Task 60 +title: Завдання 60 challengeType: 22 dashedName: task-60 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md index 12dadb76038..f0cbd435201 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657eed5ed318e4dbbce6903a.md @@ -1,6 +1,6 @@ --- id: 657eed5ed318e4dbbce6903a -title: Task 61 +title: Завдання 61 challengeType: 19 dashedName: task-61 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md index 90070b98ade..ad9612160ce 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef58855ff45e1e4ca70ee.md @@ -1,6 +1,6 @@ --- id: 657ef58855ff45e1e4ca70ee -title: Task 62 +title: Завдання 62 challengeType: 22 dashedName: task-62 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md index 0c9b5e46060..7c3861444a8 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657ef61be0a682e2591776f6.md @@ -1,6 +1,6 @@ --- id: 657ef61be0a682e2591776f6 -title: Task 65 +title: Завдання 65 challengeType: 19 dashedName: task-65 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md index 1f1ea254881..42ea484c3ff 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb48f31654ae4cb52d395.md @@ -1,6 +1,6 @@ --- id: 657fb48f31654ae4cb52d395 -title: Task 63 +title: Завдання 63 challengeType: 22 dashedName: task-63 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md index 4d68cf1ad6e..257de7c33d4 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5034da144e55cbee9d7.md @@ -1,6 +1,6 @@ --- id: 657fb5034da144e55cbee9d7 -title: Task 64 +title: Завдання 64 challengeType: 19 dashedName: task-64 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md index de690f037e6..ec08264dbbd 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb5afeeba2de5d01dda0e.md @@ -1,6 +1,6 @@ --- id: 657fb5afeeba2de5d01dda0e -title: Task 79 +title: Завдання 79 challengeType: 19 dashedName: task-79 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md index fdb9a6e9c21..b63ea510125 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb665a39478e642f5a139.md @@ -1,6 +1,6 @@ --- id: 657fb665a39478e642f5a139 -title: Task 67 +title: Завдання 67 challengeType: 19 dashedName: task-67 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md index 4eb6490a716..2f752b21ceb 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb8cfbd0e4ae797fc6077.md @@ -1,6 +1,6 @@ --- id: 657fb8cfbd0e4ae797fc6077 -title: Task 66 +title: Завдання 66 challengeType: 22 dashedName: task-66 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md index 16c2c2efb19..b943faf18d6 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb92c6f888fe8013f1a28.md @@ -1,6 +1,6 @@ --- id: 657fb92c6f888fe8013f1a28 -title: Task 76 +title: Завдання 76 challengeType: 19 dashedName: task-76 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md index 00dcdddae4d..59d6d64d2cf 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fb980a9b567e860b77f2c.md @@ -1,6 +1,6 @@ --- id: 657fb980a9b567e860b77f2c -title: Task 77 +title: Завдання 77 challengeType: 22 dashedName: task-77 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md index d93315134ca..33101f6503e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fba163fec41e8e00c5817.md @@ -1,6 +1,6 @@ --- id: 657fba163fec41e8e00c5817 -title: Task 70 +title: Завдання 70 challengeType: 19 dashedName: task-70 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md index b10b0ef7fc7..c6972ed984f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbad88163d8e96189f823.md @@ -1,6 +1,6 @@ --- id: 657fbad88163d8e96189f823 -title: Task 68 +title: Завдання 68 challengeType: 22 dashedName: task-68 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md index 4f1d80e0b50..2d508f934cc 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbb3a1a63d0e9c307fd83.md @@ -1,6 +1,6 @@ --- id: 657fbb3a1a63d0e9c307fd83 -title: Task 69 +title: Завдання 69 challengeType: 19 dashedName: task-69 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md index 6ddc6fb501d..12595624a93 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc14d41a20ea5f286378.md @@ -1,6 +1,6 @@ --- id: 657fbc14d41a20ea5f286378 -title: Task 71 +title: Завдання 71 challengeType: 22 dashedName: task-71 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md index 1ba2ea1ca8e..263b1d1d5b9 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbc85c25a16eac8356182.md @@ -1,6 +1,6 @@ --- id: 657fbc85c25a16eac8356182 -title: Task 72 +title: Завдання 72 challengeType: 19 dashedName: task-72 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md index f0da2c2eaa8..d2a64f95fc1 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbd591461eaeba07ffff1.md @@ -1,6 +1,6 @@ --- id: 657fbd591461eaeba07ffff1 -title: Task 74 +title: Завдання 74 challengeType: 19 dashedName: task-74 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md index beadfb1fecc..0ce0cba138b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fbde9a43e35ec1ebafe56.md @@ -1,6 +1,6 @@ --- id: 657fbde9a43e35ec1ebafe56 -title: Task 75 +title: Завдання 75 challengeType: 19 dashedName: task-75 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md index 04dc65be077..87cbf0a63ff 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff0bfb6a28f1d70fa9ef.md @@ -1,6 +1,6 @@ --- id: 657fff0bfb6a28f1d70fa9ef -title: Task 78 +title: Завдання 78 challengeType: 22 dashedName: task-78 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md index d19938fcc1e..950abf1d912 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/657fff7dabba2ff23993b08c.md @@ -1,6 +1,6 @@ --- id: 657fff7dabba2ff23993b08c -title: Task 80 +title: Завдання 80 challengeType: 19 dashedName: task-80 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md index ce1d7514f75..7c37279057f 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580001adc7fd4f2b244f3a5.md @@ -1,6 +1,6 @@ --- id: 6580001adc7fd4f2b244f3a5 -title: Task 81 +title: Завдання 81 challengeType: 22 dashedName: task-81 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md index dfe9bc94e54..fb06a60c7a7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800082405352f30c6dbc7a.md @@ -1,6 +1,6 @@ --- id: 65800082405352f30c6dbc7a -title: Task 82 +title: Завдання 82 challengeType: 19 dashedName: task-82 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md index f70a99cb8d2..7668b5628a3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800148406738f397561d77.md @@ -1,6 +1,6 @@ --- id: 65800148406738f397561d77 -title: Task 83 +title: Завдання 83 challengeType: 22 dashedName: task-83 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md index e8d379adc82..ea32ccf9c43 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658001a018bbcbf3fd84f832.md @@ -1,6 +1,6 @@ --- id: 658001a018bbcbf3fd84f832 -title: Task 84 +title: Завдання 84 challengeType: 19 dashedName: task-84 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md index 2e9dfe62794..d5a95db9e0b 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/6580026241ae0ef46b181e49.md @@ -1,6 +1,6 @@ --- id: 6580026241ae0ef46b181e49 -title: Task 85 +title: Завдання 85 challengeType: 22 dashedName: task-85 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md index 99bf785a6b9..ffa005ea520 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658002d23e245ff4ca8542d5.md @@ -1,6 +1,6 @@ --- id: 658002d23e245ff4ca8542d5 -title: Task 86 +title: Завдання 86 challengeType: 19 dashedName: task-86 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md index 580cbf63cf4..f7dcbe34473 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658003d8ff9da6f5c08971a1.md @@ -1,6 +1,6 @@ --- id: 658003d8ff9da6f5c08971a1 -title: Task 88 +title: Завдання 88 challengeType: 19 dashedName: task-88 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md index acaa9ab628a..a3f2604d8dc 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658009d86dc9caf988e2ea64.md @@ -1,6 +1,6 @@ --- id: 658009d86dc9caf988e2ea64 -title: Task 89 +title: Завдання 89 challengeType: 19 dashedName: task-89 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md index c31d9f5aa77..ceb44b66105 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b1c13005dfa9df75d73.md @@ -1,6 +1,6 @@ --- id: 65800b1c13005dfa9df75d73 -title: Task 91 +title: Завдання 91 challengeType: 19 dashedName: task-91 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md index c4a01d2a61c..c38a9597ce7 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800b96989013fb24aa1b70.md @@ -1,6 +1,6 @@ --- id: 65800b96989013fb24aa1b70 -title: Task 92 +title: Завдання 92 challengeType: 19 dashedName: task-92 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md index 631c51339da..7c51793688d 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800c12978ba7fb82007446.md @@ -1,6 +1,6 @@ --- id: 65800c12978ba7fb82007446 -title: Task 93 +title: Завдання 93 challengeType: 19 dashedName: task-93 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md index dd0c73c8fb6..8e44972e414 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800cf36faba0fbfa1027b6.md @@ -1,6 +1,6 @@ --- id: 65800cf36faba0fbfa1027b6 -title: Task 94 +title: Завдання 94 challengeType: 22 dashedName: task-94 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md index 0b8eb4240f0..f902c211f9e 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800d61890343fc5cce0ec8.md @@ -1,6 +1,6 @@ --- id: 65800d61890343fc5cce0ec8 -title: Task 95 +title: Завдання 95 challengeType: 19 dashedName: task-95 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md index a9ef32e2d53..0ca37d66b39 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800df7fc5d49fcd7209248.md @@ -1,6 +1,6 @@ --- id: 65800df7fc5d49fcd7209248 -title: Task 96 +title: Завдання 96 challengeType: 22 dashedName: task-96 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md index 7806fdc194a..8f203be7741 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800e60dad5fefd4ed91589.md @@ -1,6 +1,6 @@ --- id: 65800e60dad5fefd4ed91589 -title: Task 97 +title: Завдання 97 challengeType: 22 dashedName: task-97 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md index c8641f562e7..e78c86ad645 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65800f4d194382fdebb81e1f.md @@ -1,6 +1,6 @@ --- id: 65800f4d194382fdebb81e1f -title: Task 98 +title: Завдання 98 challengeType: 22 dashedName: task-98 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md index f63b8729c15..21d9c0e0d92 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65801182280f63ff10ca4d4f.md @@ -1,6 +1,6 @@ --- id: 65801182280f63ff10ca4d4f -title: Task 100 +title: Завдання 100 challengeType: 22 dashedName: task-100 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md index a3d39f8cb89..3543e95f7f3 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658011ef9ec114ff80ce5e42.md @@ -1,6 +1,6 @@ --- id: 658011ef9ec114ff80ce5e42 -title: Task 101 +title: Завдання 101 challengeType: 19 dashedName: task-101 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md index f13fe1dbd42..9bcb21df677 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/658013bd3b1a06001a59e006.md @@ -1,6 +1,6 @@ --- id: 658013bd3b1a06001a59e006 -title: Task 102 +title: Завдання 102 challengeType: 22 dashedName: task-102 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md index 4f83ae7c57f..cd6eb718f0a 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802ee9706eb103aea442f8.md @@ -1,6 +1,6 @@ --- id: 65802ee9706eb103aea442f8 -title: Task 103 +title: Завдання 103 challengeType: 19 dashedName: task-103 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md index 8365beabc2a..d6ad47e2d49 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802f717cef8c042af950b8.md @@ -1,6 +1,6 @@ --- id: 65802f717cef8c042af950b8 -title: Task 104 +title: Завдання 104 challengeType: 19 dashedName: task-104 --- diff --git a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md index 2e97ef14eed..23adc0468c2 100644 --- a/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md +++ b/curriculum/challenges/ukrainian/21-a2-english-for-developers/learn-how-to-talk-about-hobbies-and-interests/65802fe92ef0f404ba0437f7.md @@ -1,6 +1,6 @@ --- id: 65802fe92ef0f404ba0437f7 -title: Task 105 +title: Завдання 105 challengeType: 19 dashedName: task-105 ---