(ч.2)iOSндексШколаМобильнойРазработкиiOS //Вступительные
Витогезадачасводиласьктому,чтобынемногоизменитьготовоерешениеипротестироватьлокально。 Objective-C的最新消息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 Наэтузадачуушлооколо1.5часовионапрошлатестынаплатформеспервойпопытки。
Началонеплохое)
Наследующийденьзнакомыйрассказал,чтоонпростонашелразмеррешетадлячисла1⁰⁶иподставилего。 Врамкахзаданияможнобылоитак。 😉
2.Преобразованиестрок
Навходпередаетсястрока。 Необходимоеетрансформировать(сжать),还有затемвывести。 Напримересливход:aaabb77daa8ccc,навыходе:3a2b27d2a83c。
Objective-C中的 Намойвзглядэтосамоепростоезадание 。 ПозжеяузналкаквсеэтоназываетсяWiki。 ,сноваобрадовался,решениепрошловсетестыспервогораза。 Послеэтогояуженемногорасслабился,在к⁰⁰даибылоближе之前。
3.Крестикиинолики
Необходимоопределитьисходигрыприидеальнойигрекаждого,еслиизвестентекущийраскладполя。 Такжеизвестно,чтобылосделано1,2или3хода。 Однимходомсчитатьдействиеобоихигроков。 X — O —图库照片#—图库照片。 获胜:X赢了—赢得了O,赢得了O —赢了Draw —赢得了。
Решаяэтузадачуяисписалмноголистовбумаги,поигралвреализациюотGoogle。 Потомискалвозможныеисходыиалгоритмыимнепоказалось,чтоещечуть-чутьиятутиттентер。 Былооколо4ночииярешил,чтоэтузадачулучшепропуститьивернутьсякнейпозже。
// TODO: Вернутьсякэтойзадачепозже
Вернулсяяужеближек7утра。 Objective-C中的Голованеработала,ноянакидалпримерныеситуации。 Идеябылавобработкешаблонныхситуаций。 Например,Xвцентре,或OневдиагональнойклеткеприидеальнойигреXпобедит。 Проверкинавозможностьсозданияситуаций,вкоторыхнаследующемходуможнопобедить(вилки)。 Посленесколькихпопытокиисправленийярешил,чтолучшесейчасуженесделаю。 Витогеяненабралмаксимальныйбалпоэтойзадаче。
Возможноэтузадачуможнорешитьиспользуяминимаксилисхожеедереворешений,носходуянемогупридуматькакправильновзвешиватьситуацииприидеальнойигрекаждого。 Есликто-тознает,在комментариях上添加бадурадеслиподелитесь。 😉
4.Графы
Навходпередаетсяколичествоточекиребернеориентированнооографа。 Затемперечисляютсяпарыточек—ребра。 Ипослеэтогоидетсписокиндексовребер,которыенеобходимоудалять。 Задачанайтиивывестивсекомпонентысвязностипослекаждогоудаленногоребра。 Ребрамогутповторяться。
Ужеточнонепомнюлимитынаколичествоточек,реберииндексов。 упочтиуверен,чтобольшечем1⁰⁶。
Последнийразяработалсграфамив2012году,когдазанималсясозданиемприложениядляпроектирова。 Послереализации,оченьинтереснобылопросторазбиватьбольшиеквартирынамножествокомнат。
Длярешениязадачияпосмотрелкакискатькомпонентысвязности,нашелпримерыреализициипримен。 Вроденичегосложного。 Длябыстрогоудаленияребернужнопростоиспользоватьподходящиеструктурыданных。 限制时间:2.056。时限:2.056。
Послеэтогояпереписывалрешениеещедесяткираз。 CслабознаюC ++,在даивграфахнесилен。 Почиталоструктурахданных,пыталсяпереписатьразнымиспособами。 Потомяпонял,чтоесликоличествоудаляемыхреберравноколичествувсехребер,токоличествокомпонентсвязностибудетравноколичествуточек!)Быстродобавилпроверкуиотправил。 Получилпримерно时限:2.049。 Кэтомумоментуяужепотратилпаручасовнарешениеэтойзадачиискореевсегоужебыло6утра。 Японял,чтопоравозвращатьсяккрестикаминоликам..
Вконцеконцовянабралнаэтойзадачепримерно60–70%баллов。 ,скопировалсвойкод,чтобыпоказатьколлегенаработе。
Можетпоказаться,чтозадачаоченьсложная。 Но..меняждалсюрприз。 Коллегасказал,чтовалгоритмевсехорошоиособыхпроблемневидит。 Хотяподметил,чтосовсемнеобязательновыводитьколичествокомпонентсвязностипослекаждегеуд。 Особеннокогдаэтоможетпроисходитьпомиллионураз..
Вцеломзадачибылинесложные。 Втораябылаоченьпростая。 Первуюипоследнююможнобылорешитьдажеесливынезнаетенужныхалгоритмов。 Напросторахинтернетахватаетинформации,例如сводитсякпоискуиприменению。 Третьязадачанаверноебыласамойсложнойдляменя,кнейсложнонайтипочтиготовоерешениеилиди。 Ночьюяизмучилсярисоватьиразбиратьбольшоеколичествоситуаций。 Возможноднемябысправилсяснейбыстрее。 Вцеломянабралмаксимальныебалытолькопопервымдвумзадачам。 Подвумостальнымчто-тооколо60–70%,насколькояпомню。 Витогеэтогобылодостаточно,чтобыпопастьнаочноесобеседование。
Очноесобеседование
Наверноеспустянеделюмнепришлописьмо。 НеобходимобыловыбратьвремяиприйтивофискомпанииЯндекс 。 Кэтомусобеседованиюяпочтинеготовился,толькопросмотрелещеразонлайнзадачи。 Мненаивноказалось,чтобудетскорееорганизационнаячастьивозможноустныетехническиевопооы
Когдаяужепришелвофиснужнобылонемногоподождать。 Покаяожидалнаресепшенсомнойрядомсиделпарень。 ,быстродогадался,чтоонтожепришелпоступатьвшколу。 Былооченьзаметно,чтоонсильнонервничал)
Собеседованиебылоразбитонадвечасти:техническаяиорганизационная。 Накаждуючастьотводилосьпо30минут。
Натехническойчастимнепродиктовализадачунапреобразованиестрок。 Самазадачабыланесложная,ноеенужнобылонаписатьнасуществующемязыкепрограммирования(оо Послереализациименяпопросилиизменитьрешениебезиспользованиядополнительнойпамятииопред。 使用Objective-C的 Вцеломзаданиемнепоказалосьлегким。
Ворганизационнойчастибаличныевопросыобобразовании,опытеразработки,желанииобучать。 Мнепоказалось,якакразпровалилэтучасть。 Деловтом,чтоуменяужебылхорошийопытивозникалисомнениявмоейзаинтересованооивстаж Аосновнаяцель,какяпонимаю,привлечьиобучитьбудущихсотрудников。
Почтиконец
Вэтойстатьеяописаллишьсвоиидеирешениязадач。 Агдежекод?!Ксожалению,оригинальныйкодбылутерян。 Обэтомяписалчутьвыше。 快速,快速, 迅速地完成任务。 Иужесобиралсядобавитьрешениявстатью。 Ипотомзадумался,акакаяразницакакярешилэтизадачи? Намноговажнеекакрешитеихвы,когдаэтопотребуется!)
Поэтомуяподготовилвозможностьповторитьэтоиспытание,либомуктозахочет,наплатформеCodewars。 Поссылкеясоздалколлекциюиз4испытанийподназваниемYandex iOS学校入学考试是 Swift。 Всечтовамнужно,зарегистрироваться(можносGithubаккаунта)иввсможетерешатьэтизадачисооом。 Затемвашерешениедолжнопройтитесты,основанныенамоемрешении。 Пишите,еслибудутпроблемы。 Уменяпокажелтыйпояспопрограммированию。 😉
Заключение
Какиевыводыясделалдлясебя?
- ВЯндексеоченьлабатьзадачинаприменениеалгоритмовиструктурданных。 Неважнонакакомязыкевыпишите。 Неважнокакойувасопыт。 Нужнохорошопониматькакписатьнетолькорабочий,ноиоптимальныйкод。 Могупорекомендовать: 如何开始使用算法成为更好的开发人员 。
- Вамнеобходимокакминимумодинязыкпрограммирования(желательноООП)натакомртн Речьидетименнообязыкеиегостандартнойбиблиотеке。 Написаниециклов,работасостроками,коллекциями,файлами,итп。 Этоневключаетзнаниеконкретнойплатформы,инструментовитп。
- Вонлайниспытанииважноненаписатьидеальныйалгоритмсвоимируками,ауметьопределитьтипзадачииподобратьнеобходимыесредствадляреализациизаопределенноевремя。 使用Objective-C和C / C ++编写的对象。
- Исамыйпростойвывод。 Квсемуэтомунужноготовиться。 Мнекажетсяидеальныхзнанийпростонебывает。 Темболеесобеседования,соревнованияитп。 —этовсегданебольшойстресс。
Идеал—цель,котораявсегдаменяется。 Нельзяостанавливаться。
Вследующейчасти
,расскажуосамомобучениившколе,поделюсьвпечатлениемодомашнихзаданияхилекциях。 Былооченьинтересно)Скореевсегоэтобудетпоследняячасть。
Наэтомпокавсе。 Иконечно,еслистатьябылаваминтересна,ставьтелайки👏🏻,подписывайтесьздесьиливTwitter。 Лайкибудутмотивироватьменянапродолжение,和сыпомощьюподпискивыузнаетеоследующейчасти。 😉
Третьячасть,последняя。