You are on page 1of 111

‫ی رگ د ‪ 

‬‬ ‫ی‬ ‫ای‬ ‫آ د‬


‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪  ‬‬ ‫اول ‪ -‬و ا‬
‫‪ ‬‬
‫ورد ‪۹۸‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫د ‪ ‬‬ ‫د‬
‫ی اه‪ ‬‬ ‫د‬
‫‪ ‬‬
‫‪ 4‬‬ ‫ی‬ ‫‪ .۱‬ا ل‬
‫‪ 4‬‬ ‫‪ .۱.۱‬ا اف‬
‫‪ 5‬‬ ‫‪.۲.۱‬‬
‫‪ 6‬‬ ‫‪.۳.۱‬‬

‫‪ 8‬‬ ‫ا ت‬ ‫‪ .۲‬ا ا ی در‬


‫‪ 9‬‬ ‫د‬ ‫‪ ۱.۲‬ا ا ی‬
‫‪ 13‬‬ ‫د‬ ‫از ا ای ا ا ی‬ ‫‪.۲.۲‬‬

‫‪ 18‬‬ ‫‪.۳‬‬
‫‪ 19‬‬ ‫ن‬ ‫در‬ ‫‪۱.۳‬‬
‫‪ 20‬‬ ‫د‬ ‫و وش‬ ‫‪.۲.۴‬‬
‫‪ 24‬‬ ‫ه را‬ ‫‪ ۳.۴‬د‬

‫‪ 26‬‬ ‫‪ .۵‬ر‬
‫‪ 27‬‬ ‫ن‬ ‫در‬ ‫‪ ۱.۵‬ر‬
‫‪ 27‬‬ ‫ن‬ ‫در‬ ‫ه ر ر‬
‫‪ 28‬‬ ‫م ا ار را‬ ‫ی‬ ‫‪۲.۵‬‬
‫‪ 31‬‬ ‫ت را‬ ‫‪۲.۵‬‬
‫‪ 34‬‬ ‫؟‬ ‫ا‬ ‫‪ ۳.۵‬آ‬

‫‪ 38‬‬ ‫‪.۶‬‬
‫‪ 39‬‬ ‫ن‬ ‫در‬ ‫‪۱.۶‬‬
‫‪ 39‬‬ ‫ن‬ ‫در‬ ‫ه ر‬
‫‪ 40‬‬ ‫؟‬ ‫‪ ۲.۶‬آ‬
‫‪ 44‬‬ ‫در‬ ‫ار ر‬ ‫‪ ۳.۶‬او‬

‫‪ 48‬‬ ‫‪.۷‬‬
‫‪ 49‬‬ ‫‪۱.۷‬‬
‫‪ 49‬‬ ‫ن‬ ‫در‬ ‫ه ر‬
‫‪ 50‬‬ ‫ات‬ ‫د‬ ‫‪۲.۷‬‬

‫‪ 56‬‬ ‫ی‬ ‫‪.۸‬‬


‫‪ 57‬‬ ‫ی‬ ‫‪۱.۸‬‬
‫‪ 58‬‬ ‫را‬ ‫‪۲.۸‬‬

‫‪ 62‬‬ ‫دودو‬ ‫‪ .۹‬در‬


‫‪ 64‬‬ ‫دودو‬ ‫‪ ۱.۹‬در‬
‫‪ 64‬‬ ‫ن‬ ‫دودو در‬ ‫ه ر در‬
‫‪ 66‬‬ ‫‪.‬‬ ‫را‬ ‫رت ر‬ ‫‪۲.۹‬‬
‫‪ 70‬‬ ‫را‬ ‫ار ع‬ ‫‪۳.۹‬‬
‫‪ 74‬‬ ‫ن‬ ‫ی در‬ ‫‪ ۱.۱۰‬د‬
‫‪ 74‬‬ ‫ن‬ ‫ی در‬ ‫ه ر د‬
‫‪ 76‬‬ ‫‪ .۱۱‬در‬
‫‪ 77‬‬ ‫ن‬ ‫در‬ ‫‪ ۱.۱۱‬در‬
‫‪ 77‬‬ ‫ن‬ ‫در‬ ‫ه ر در‬
‫‪ 78‬‬ ‫‪-k‬‬ ‫زی‬ ‫‪۲.۱۱‬‬
‫‪ 82‬‬ ‫ه را‬ ‫ی‬ ‫‪۳.۱۱‬‬

‫‪ 87‬‬ ‫ی دودو‬ ‫‪ .۱۲‬در‬


‫‪ 88‬‬ ‫ی دودو‬ ‫‪ ۱.۱۲‬در‬
‫‪ 89‬‬ ‫ی‬ ‫اد‬ ‫‪.۲.۱۲‬‬
‫‪ 96‬‬ ‫زه‬ ‫د در‬ ‫ع‬ ‫‪۲.۱۲‬‬

‫‪ 99‬‬ ‫‪ .۱۳‬اف‬
‫‪ 100‬‬ ‫‪ ۱.۱۳‬اف‬
‫‪ 101‬‬ ‫ت‬ ‫د‬ ‫‪۲.۱۳‬‬
‫‪ 108‬‬ ‫در ول‬ ‫‪۳.۱۳‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫ی‬ ‫‪ .۱‬ا ل‬
‫‪ ‬روی‪    ‬دن‪   ‬ورک‪ ‬‬ ‫‪ ‬ا‬ ‫‪   ‬‬ ‫‪ ‬و د‪  ‬ارد‪ .‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬ای‪  ‬ای‪ ‬‬ ‫در‪ ‬ا ان‪ ‬روش‪  ‬ز ن‪ ‬‬
‫‪ ‬‬ ‫‪ ،‬‬ ‫‪ .‬در‪ ‬ا ‪ ‬د ی‪ ‬وا‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫د‪   ‬آ ‪ ‬و‪ ‬‬ ‫‪ ‬دار ‪   ‬ا وز‪ ‬‬ ‫ژی‪ ‬‬ ‫‪ ‬و‪ ‬‬
‫‪ .‬روش‪ ‬‬ ‫‪ ‬آ ده‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪  ‬د‪ ‬‬ ‫ا ‪      ‬ی‪ ‬را‪  ‬ای‪ ‬‬ ‫ن‪   ‬‬
‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫ن‪ ‬را‪ ‬در ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬م‪ ‬ا اری‪  ‬ا ‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪  ‬ه‪ ‬ا ‪   ‬‬ ‫‪   ‬‬ ‫ا م‪ ‬‬
‫‪ ‬ا ‪ ‬‬ ‫‪ .‬در‪ ‬‬ ‫ه‪ ‬‬ ‫ود‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬را‪ ‬و ‪ ‬‬ ‫‪   ‬در‪ ‬رزو ‪  ‬د‪  ‬ر‪   ‬ا ار ی‪ ‬‬ ‫ب‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬ا ٓ‬
‫‪  ‬ب‪ ‬را‪  ‬ار ‪ ‬و‪ ‬و ل‪  ‬دن‪ ‬‬ ‫‪ ‬‬ ‫ی‪   ‬‬ ‫‪  ‬رت‪  ‬ی‪ ‬‬ ‫‪  ‬ا ‪     ‬‬ ‫‪ ‬‬ ‫ام‪ ‬‬ ‫‪   ‬ا‬ ‫ه‪ ‬‬
‫‪  ​ ،‬رت‪   ‬‬ ‫‪   ‬‬ ‫‪    ‬م‪ ‬ا ار‪ ‬‬ ‫‪ ‬در‪ ‬د ی‪ ‬ا رت‪ ‬آپ‪ ‬‬ ‫‪  ‬ی‪  ‬رگ‪ ‬د ‪ ‬و‪ ‬‬ ‫‪  ‬ا ‪ .  ‬در‪ ‬‬
‫ا ‪ .‬‬ ‫ام‬ ‫ای ا‬ ‫را‬ ‫و‬ ‫یا‬ ‫رت‬
‫‪ ‬‬
‫‪ ‬‬ ‫ص‪ ،‬‬ ‫ه‪ ‬را‪ ‬ا ا ‪   ‬د ‪ .‬‬ ‫ب‪ ‬ا‬ ‫‪  ‬ب‪ ‬و‪ ‬ا‬ ‫‪ ‬‬ ‫ل‪ ‬از‪ ‬د ‪ ‬دادن‪   ‬‬ ‫ام‪ ‬ا‬ ‫روش‪  ‬ری‪ ‬ا‬
‫ر‪ ‬‬ ‫‪ ‬درو ا‪  ‬دن‪   ‬‬ ‫ری‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪    .    ‬ان‪  ‬ل‪ ،‬در‪ ‬‬ ‫ه‪ ‬را‪ ‬‬ ‫ن‪  ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫و ه‪ ‬‬
‫‪  ‬ای‪ ‬‬ ‫‪ .‬رو ‪ ‬‬ ‫ن‪  ‬ب ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪    ‬د‪ ،‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬را‪     ‬درو ا‪    ‬رت‪ ‬‬ ‫ه‪  ‬دی‪    ‬رت‪ ‬ا ‪    ‬ف‪ ‬در‪ ‬ز ن‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ ‬‬
‫‪ .‬‬ ‫رت‬ ‫ارز‬ ‫را‬ ‫د ‪.‬‬ ‫ر‬

‫‪ ‬‬ ‫‪ .۱.۱‬ا اف‬


‫(‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ام‪  ‬ای‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬آن‪ ‬ا ‪)     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬در‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ا اف‪ ‬ا‬
‫‪ :‬‬ ‫ند‬ ‫ر ص‬ ‫‪.‬‬ ‫ن‬ ‫‪ ،‬ده زی‪ ،‬و ار ط‬ ‫درک و‬ ‫ه ا‬ ‫را از د‬

‫ل‪ ‬‬ ‫رت‬ ‫آن را‬ ‫و ا و‬ ‫ارا‬ ‫ای‬ ‫ا ر‬ ‫ا راه‬ ‫‪:‬‬ ‫رت‬ ‫●‬
‫‪  .‬‬
‫را‪ ‬‬ ‫ت ا اد‬ ‫و‬ ‫د‬ ‫را ای ا اد د‬ ‫ا راه ی‬ ‫‪:‬‬ ‫ار ط‬ ‫ا‬ ‫●‬
‫‪  .‬‬ ‫ده‬ ‫از آن ا‬ ‫و در‬
‫‪ ‬‬ ‫ند‬ ‫‪.‬‬ ‫د را ده زی‬ ‫ارا‬ ‫را‬ ‫ط راه‬ ‫ا‬ ‫‪:‬‬ ‫●‬
‫‪ ‬‬ ‫ز دو‬ ‫د‬ ‫و‬ ‫د‬ ‫ده‬ ‫شوا‬ ‫‪،‬و‬ ‫ای ا ‪،‬‬ ‫ا‬
‫دار ‪ .‬‬ ‫در‬
‫‪ .‬‬ ‫دو‬ ‫ت ا‬ ‫از ر دن‬ ‫و‬ ‫و ا ژی‬ ‫‪:‬‬ ‫●‬

‫‪ ‬‬ ‫‪.۲.۱‬‬
‫‪   ‬‬ ‫‪  ‬ی‪  ‬ب‪ ‬د ‪  ‬ار ‪ .‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪   ‬‬ ‫‪ ‬د‬ ‫ی ‪  ‬ر‪ ‬‬ ‫ن‪ ‬‬ ‫‪ ‬‬ ‫ری‪ ‬از‪ ‬‬
‫‪ ‬آن‪ ‬ا ‪   ‬‬ ‫‪  ‬ارد‪  .‬ف‪ ‬ا ‪ ‬‬ ‫ار‪    ‬د‪ .‬ا ‪ ‬وا‬ ‫‪  ‬ش‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬در‪ ‬ا ‪ ‬‬ ‫ر‪   ‬‬ ‫ه‪ ‬‬ ‫ا‬
‫‪ .‬‬ ‫ی رگ د‬ ‫از‬ ‫د‬

‫‪ ‬‬ ‫ان ل‬ ‫دار ‪.‬‬ ‫ام‬ ‫ای ا‬ ‫دور‬ ‫‪:‬‬ ‫اد‬ ‫●‬
‫اد‪ ‬‬ ‫در‬ ‫ی‬ ‫دارد‪.‬‬ ‫ری ای ارز‬ ‫و‪۵‬‬ ‫آ‬
‫‪  .‬‬ ‫وت‬ ‫ا‬
‫‪ ‬‬ ‫در او‬ ‫آ‬ ‫د‪.‬‬ ‫ار‬ ‫در‬ ‫رت آ‬ ‫‪:‬‬ ‫نو‬ ‫●‬
‫ی‪ ‬‬ ‫‪.‬‬ ‫داک(‬ ‫)‬ ‫آ‬ ‫و ا‬ ‫را در‬ ‫ه‬ ‫دو‬ ‫ا م‬
‫د‪ .‬‬ ‫دا م‬ ‫ه وا‬ ‫اق‬ ‫و در‬ ‫ری در‬
‫‪ ‬‬ ‫ت‬ ‫ه را‬ ‫ه راس‬ ‫‪.‬‬ ‫ل‬ ‫ی‬ ‫● ز ن‪:‬‬
‫‪  .‬‬ ‫و وی ش آ‬
‫‪  ‬ر‪ ‬روی‪ ‬آن‪ ‬‬ ‫‪ ‬و‪  ‬ت‪  ‬وژه‪ ‬‬ ‫‪ ‬ا ‪ ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫ه ‪    ‬د‪   ‬‬ ‫‪ ‬‬ ‫‪ :‬‬ ‫‪ ‬ا ای‪ ‬‬ ‫●‬
‫‪ .‬‬ ‫‪ ‬در ره‪  ‬دش‪ ‬‬ ‫ه‪    ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ .    ‬‬ ‫‪ ‬‬ ‫ری‪     ‬را‪ ‬در‪ ۲   ‬د‬
‫‪ ‬‬ ‫‪    ‬ای‪  ‬ش‪ ‬در‪ ‬آن‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫​‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪  ‬ت‪  ‬ارج‪ ‬‬ ‫ه‪ ‬در‪ ۲   ‬د‬ ‫‪ ‬‬
‫‪      ‬رت‪ ‬‬ ‫ت‪ ‬وی‪ ‬دا ‪ ‬‬ ‫‪ ‬در‪  ‬رد‪ ‬‬ ‫ه‪  ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫‪ .‬‬ ‫‪  ‬د‪ ‬را‪   ‬‬
‫د ‪ .‬‬ ‫ف‬ ‫و‬
‫‪    ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ح‪     ‬و‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫ه‪    ‬ال‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ :‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬ا ر‬ ‫●‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬ارا ‪        ‬ل‪ ‬از‪ ‬ورودی‪ ‬و‪  ‬و ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ .‬‬ ‫آن‪ ‬را‪ .    ‬ا ‪  ‬ال‪  ‬ا‪ ‬‬
‫‪  ‬ز‪     ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ت‪ ‬‬ ‫‪ .‬‬ ‫‪    ‬ال‪ ‬را‪   ‬درک‪   ‬و‪ ‬داده‪  ‬ی‪ ‬ورودی‪ ‬و‪  ‬و ‪ ‬را‪ ‬‬
‫‪   ‬د ‪   ‬‬ ‫‪ ‬در‪  ‬رد‪​ ‬راه‪    ‬ی‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬آن‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دار ‪ .‬‬ ‫‪  ‬ی‪ ‬‬ ‫دن‪ ‬از‪ ‬‬
‫‪ ‬‬ ‫‪  .‬وع‪    ‬ده‪  ‬زی‪  ‬ون‪   ‬‬ ‫ب‪ ‬‬ ‫‪ ‬راه‪ ‬را‪ ‬ا‬ ‫‪   ‬و‪ ‬‬ ‫‪ ‬آن‪   ‬را‪ ‬ارز‬ ‫‪  ،‬ا ی‪ ‬و‪ ‬‬
‫ه‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬ا ادی‪ ‬دوری‪   ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬و‪ ‬‬ ‫ن‪ ‬‬ ‫‪ ‬‬ ‫ری‪ ‬از‪ ‬‬ ‫ز ن‪  ‬ر‪ ‬‬
‫‪ ‬در‪   ‬‬ ‫‪ ‬و‪ ‬راه‪    ‬ی‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ،‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ،‬از‪ ‬‬ ‫‪  ‬ن‪ ‬د ‪   ‬از‪ ‬ا ‪  ‬ش‪ ‬‬ ‫ا‬
‫​‪           ‬و‪   ‬‬ ‫‪ ‬‬ ‫ح‪ ‬‬ ‫‪   ‬د ‪   .‬ا‬ ‫ت‪ ‬آ ‪         ‬را‪ ‬‬ ‫د‪  ‬و ‪ ‬‬
‫‪ ‬‬ ‫‪ ‬راه‪)   ‬‬ ‫‪  ‬ده‪ ‬‬ ‫‪  ‬‬ ‫‪ .    ‬ا ‪  ‬ر‪ ‬را‪ ‬‬ ‫ده‪ ‬از‪ ‬وا ‪  ‬د‪ ‬راه‪    ‬ی‪  ‬د‪ ‬را‪ ‬‬ ‫ا‬
‫‪ ‬‬ ‫‪  ‬‬ ‫‪   ‬راه‪    ‬ی‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪    ‬ن‪  (brute force ‬وع‪ .    ‬‬ ‫ی‪ ‬‬
‫‪ ‬از‪   ‬راه‪    ‬ده‪   ‬‬ ‫‪ ‬در‪  ‬ض‪ 20 ‬د‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬د ‪   .‬‬ ‫‪ ‬ا ر ‪ ‬را‪ ‬‬ ‫ده‪  ‬ه‪ ‬‬ ‫ا‬
‫‪ ‬‬ ‫‪   ‬‬ ‫ه‪  ‬وع‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪ ،‬‬ ‫ه‪ ‬راه‪   ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ر ‪ .‬در‪  ‬ر ‪   ‬‬ ‫راه‪   ‬‬
‫‪ ‬‬ ‫‪ ،‬‬ ‫‪ ‬‬ ‫‪   ‬د ‪    .‬ن‪ ‬‬ ‫‪ ‬آن‪ ‬را‪       ‬‬ ‫‪ ‬‬ ‫روی‪ ‬وا ‪  ‬د‪ .    ‬او‪ ‬در‪   ‬‬
‫‪ ‬‬ ‫‪ ‬در‪ ‬ز ن‪ ‬‬ ‫‪ ‬‬ ‫‪ .    ‬در‪  ‬ر ‪   ‬‬ ‫‪     ‬داده‪ ‬ورودی‪ ‬‬ ‫‪  ‬د‪ ‬را‪  ‬ور‪ ‬و‪ ‬‬ ‫‪ ‬‬
‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬دا ‪ ‬‬ ‫ه‪  ‬ا ت‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫(‪ ‬‬ ‫‪ ) ‬ود‪ 20 ‬د‬ ‫‪ ‬را‪ ‬‬
‫داده د‪  .‬‬ ‫ا در‬ ‫(و‬ ‫رز د ر‬ ‫داده ی‬ ‫د‬
‫‪ ‬‬ ‫ه‪    ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫ه‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬ ‫‪ :‬در‪ 5 ‬د‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫●‬
‫‪  ‬م‪ ‬روی‪   ‬‬ ‫‪ ‬‬ ‫‪   .‬ا ‪ ‬در‪ ‬‬ ‫‪  ‬ال‪   ‬‬ ‫ه‪  ‬ز ک ‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬‬ ‫ا ‪ ‬دارد‪ ‬‬
‫ام‪ ‬‬ ‫‪  ‬ا ‪  ‬ی‪ ‬ا‬ ‫؟‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬از‪  ‬ر‪  ‬دن‪ ‬در‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫وژه‪ ‬ای‪  ‬ر‪  ‬ا ‪  ‬د؟‪   ‬ا‬
‫؟‪ ‬‬
‫‪   ‬‬ ‫‪  ‬ا ‪ ‬‬ ‫‪ ‬و‪ ‬و ‪    ‬ف‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ :‬در‪ ‬ا ی‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫●‬
‫‪ ‬‬ ‫ه‪   ‬ز ‪ ‬و‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬در‪  ‬ن‪ ‬روز‪   ‬روز‪   ‬ا‬ ‫ه‪   ‬از‪  ‬ز‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬
‫‪ .‬‬ ‫آن‬ ‫دارد و ا‬ ‫آ د‬ ‫د‬ ‫ال ا‬ ‫ای‬ ‫د ا از‬

‫‪ ‬‬ ‫‪.۳.۱‬‬
‫‪ ‬در‪ ‬‬ ‫اد ی‪     ‬‬ ‫ام‪ ‬ا‬ ‫‪    ‬ای‪ ‬ا‬ ‫‪  ‬م‪ ‬ا اری‪ ‬ا ‪ ‬و‪ ‬‬ ‫‪ ‬دارا ‪   ‬‬ ‫‪  ‬ب‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫ر‪   ‬ا ‪ ‬‬ ‫‪  .    ‬ا ‪ ‬‬ ‫‪ ،‬او‪     ‬را‪ ‬ارز‬ ‫‪   ‬‬ ‫ام‪ ‬را‪ ‬ارز‬ ‫‪ ‬ا‬ ‫ر‪       ‬‬ ‫‪ .‬‬ ‫ر‬
‫‪ ‬‬ ‫‪ .‬ا ‪ ‬ا ‪ ‬‬ ‫‪  ‬ارد‪   ‬ا ام‪ ‬ر ر‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ه‪  ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬
‫د‪ .‬‬ ‫ی ری‬ ‫از‬ ‫اوازه ش‬
‫‪  ‬‬
‫د ‪ .‬‬ ‫ام دارد را‬ ‫ا‬ ‫و ا‬ ‫)‪(approchable‬‬ ‫ود‬ ‫دو‬
‫‪  ‬‬
‫ت‪  ‬ر‪ ‬و‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪  ‬ای‪  ‬ر ن‪  ،‬اد‪  ‬ر ن‪ ‬و‪  ‬وژه‪ ،  ‬‬ ‫ت‪ ‬ر‬ ‫‪ .‬در‪  ‬رد‪  ‬ق‪ ،‬ا‬ ‫ف‪  ،‬دق‪ ،‬و‪  ‬دل‪ ‬‬
‫‪  ‬ت‪    ،‬ا ‪ ‬‬ ‫‪    ‬ا ‪  ‬د‪ .‬در‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬د ‪   ‬زود‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫ه‪  ‬دق‪ ‬‬
‫د‪ .‬‬ ‫وارد ا‬ ‫را‬
‫‪ ‬‬
‫‪   .‬ا ‪ ‬د ‪   ‬‬ ‫ا‪ ‬را‪  ‬ده‪  <<  ‬ب‪ ‬‬ ‫‪    .‬ان‪  ‬ل‪  ‬ال‪>> ‬ا ر ‪ ‬دا‬ ‫‪ ‬د ‪ ‬‬ ‫ب‪  ‬ال‪ ‬‬ ‫در‪ ‬ا‬
‫ه‪  ‬ا ‪ ‬در ‪ ‬‬ ‫‪ ‬‬ ‫ارد‪ ‬و د‪ ‬دارد‪ ‬و‪ (۲) ‬ا ‪   ‬‬ ‫‪  ‬ای‪ ‬ا ر ‪  ‬ی‪  ‬وف‪  ‬ده‪  ‬زی‪  ‬ی‪ ‬ا‬ ‫)‪ (۱‬‬
‫ب‪ ‬‬ ‫‪  ‬ا ت‪ ‬در ‪    ‬ال‪ ‬ا‬ ‫ا ‪   ‬از‪ ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫‪    ،‬ا‬ ‫‪  ‬ب‪ ‬‬ ‫اب‪ ‬د ‪  ‬ن‪ ‬د ه‪ ‬‬
‫‪ .‬‬ ‫ب‬ ‫ا‬ ‫را ای‬ ‫ا ت‬ ‫ا‬ ‫‪leetcode.com‬‬ ‫در‬ ‫د‪.‬‬
‫‪ ‬‬
‫م‪ ‬‬ ‫‪   .‬ا ‪ ،‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ه‪  ‬ا ‪     ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪   .‬ا ‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬را‪ ‬‬ ‫‪ ‬‬
‫‪  ،‬ع‪ ‬‬ ‫‪  ‬ل ‪  ‬ت‪ ‬‬ ‫ت‪    ‬ا ‪ ‬‬ ‫‪  ‬د ‪ .‬‬ ‫‪ ‬را‪  ‬ای‪ ‬وی‪ ‬‬ ‫‪  ،‬ه‪ ‬ا م‪ ‬‬ ‫د ت‪  ‬ای‪ ‬‬
‫‪ ‬و‪ ‬ز ن‪  ‬ی‪    ) ‬ود‪ ‬‬ ‫(‪  ،‬ل‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪) ‬‬ ‫‪   ،‬ه‪ ‬‬ ‫ا ‪    ‬ار‪ ‬ا ‪ ‬از‪ ‬وی‪ ‬‬
‫‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪    ‬ا ‪  ‬ا ت‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬و (‪ ‬و‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪  ‬ای‪   ‬‬ ‫‪ ۴۰‬د‬
‫‪ .‬‬ ‫ف‬ ‫آ‬ ‫د‬ ‫د و د‬ ‫ن‬ ‫را‬ ‫ری‬ ‫ه‬
‫‪ ‬‬
‫‪ ‬‬ ‫ا ت‪ ‬‬ ‫‪ .۲‬ا ا ی در‬
‫‪ ‬‬ ‫د‬ ‫‪ ۱.۲‬ا ا ی‬
‫‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬‬ ‫ت‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬ا ر‬ ‫‪   ‬‬ ‫ف‪  ‬و ‪  ‬ا ‪ ‬‬
‫‪ ‬راه‪    ‬د‪ ‬را‪  ‬ح‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪    ‬اب‪ ‬آ ‪   ‬ا ‪ ‬و‪  ‬ز‪ ‬‬ ‫‪ ‬‬ ‫ت‪ ‬‬ ‫وت‪ ‬ا ‪ .‬در‪ ‬‬ ‫‪ (ACM‬‬
‫ر‪   ‬‬ ‫‪     ‬‬ ‫ن‪         ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫د ‪ .‬در‪ ‬‬
‫ر‪   ‬‬ ‫ه‪  ‬ن‪  ‬ا ‪ ‬داد‪     ‬‬ ‫‪ ‬‬ ‫‪ .​(Think out Loud) ‬ا ‪  ‬ر‪   ‬‬ ‫ن‪ ‬را‪ ‬داد‪ ‬‬ ‫ح ​‪ ‬‬ ‫‪     ‬ا‬ ‫‪ ‬‬
‫دار ؟‪ ‬‬ ‫ا ر‬ ‫ای‬ ‫ذ رو‬ ‫آ‬ ‫ا‬ ‫ا‬ ‫ه‬ ‫)‪.(thought process‬‬
‫‪  ‬‬
‫ن‪     ‬راه‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬را‪ ‬روی‪ ‬‬ ‫‪     ‬و‪    ‬ا ‪ ‬ا ه‪  ‬ی‪ ‬‬ ‫‪   ‬از‪ ‬ز ن‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬ا ‪   ‬ذ ‪ ‬‬
‫‪    ‬ت‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪  ‬ا ‪ ‬‬ ‫‪   ‬ا ‪ .‬ا ‪ ‬ا ا ی‪ ‬در‬ ‫‪ ‬ا ‪ ‬ز ن‪ ‬از‪   ‬‬ ‫‪ ‬را‪ ‬‬
‫‪ ‬ذ ‪  ‬د‪ ‬را‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪  .‬ا ‪    ‬د‪ ‬‬ ‫‪  ‬رت‪   ‬در‪ ‬ار ط‪ ‬و‪   ‬‬ ‫‪  ‬د‪     ‬دو‪ ‬‬ ‫‪ ‬‬ ‫و‪   ‬‬
‫‪  ‬ز ‪ ،‬و‪  ‬ی‪ ‬‬ ‫‪   ‬‬ ‫ی‪  ‬م‪ ‬و‪ ‬‬ ‫ن‪ ‬‬ ‫ر‪   ‬‬ ‫‪ ،‬‬ ‫‪    ‬رت ​‪  ‬ری‪ ‬از‪ ‬ا ه‪    ‬ا ‪ ‬‬ ‫در‪  ‬ل‪ ‬در‬
‫‪  .‬‬ ‫ن را داد‬
‫‪ ‬‬

‫‪  ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪ .‬در‪ ‬ا ‪ ‬روش‪ ‬‬ ‫‪   ‬‬ ‫د‪ ‬‬ ‫ده‪ ‬از‪​ ‬ا ا ی‪ ‬‬ ‫‪ ‬راه‪  ‬ای‪ ‬ا د‪  ‬ری‪ ‬از‪ ‬ا ه‪   ‬ا‬
‫‪ ‬راه‪ ‬را‪  ‬م‪    ‬م‪     ‬و‪ ‬‬ ‫‪ ‬‬ ‫(‪ ‬راه‪     ‬‬ ‫‪ ‬‬ ‫‪) ‬ا ‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪    ‬ال‪ ،‬‬ ‫‪ ،‬‬ ‫‪ ‬‬
‫‪ .‬‬ ‫ر‪ ‬وی‪ ‬از‪  ‬ال‪ ‬را‪ ‬د ‪ ‬‬ ‫‪   ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ‬از‪ ‬‬ ‫‪  ‬زم‪ ‬‬ ‫ز ن‪   ‬آور ‪ .‬در‪ ‬ا ‪  ‬و ‪ ‬ا‬
‫ه‪  ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   .‬ا ‪  ‬ر‪ ‬را‪ ‬ا م‪ ‬د ‪   ‬‬ ‫‪   ‬از‪ ‬د ‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬زم‪  ‬د‪   ‬‬ ‫‪ ‬ا‬
‫‪   ‬‬ ‫‪ ‬د ل‪   ‬را‪ ‬در‪ ‬‬ ‫‪     ‬در‪   ‬‬ ‫‪   ‬‬ ‫ی‪ ‬د ‪ ‬ا ا ی‪ ‬‬ ‫‪  .‬دار‪ ‬ز ‪ ‬‬ ‫ر‪     ‬‬ ‫‪ ‬‬
‫د ‪ .‬‬ ‫ن‬ ‫رت‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫یا ر‬ ‫ا ت‬ ‫ای‬ ‫د‬ ‫ا ا ی‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ :‬‬ ‫رت‬ ‫ا‬ ‫ت‬

‫‪ ‬‬ ‫ا‬ ‫ها ‪.‬‬ ‫را در‬ ‫ند‬ ‫از ورودی و و‬ ‫‪:‬ا ا‬ ‫●‬
‫‪ ‬‬ ‫ز ا‬ ‫ا‬ ‫ر‬ ‫‪.‬ا‬ ‫ه‬ ‫آن را‬ ‫ع ورودی و‬
‫‪ .‬‬ ‫را‬ ‫ا‬
‫‪ (brute force) ‬ا ‪ ‬آ ز‪ .    ‬راه‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬را‪ ‬از‪     ‬روش‪   ‬‬ ‫‪   :‬‬ ‫ی‪ ‬‬ ‫● راه‪   ‬‬
‫‪  ‬ی‪   Big O ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬آن‪ ‬را‪  ) ‬ا‬ ‫‪ ‬و‪  ‬ان‪ ‬‬ ‫‪ ‬‬ ‫‪ .    ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪  ‬ای‪ ‬‬
‫‪ ‬را‪ ‬‬ ‫‪ ‬و‪  ‬ح‪   ‬د ‪  .‬ف‪ ‬از‪ ‬ا ‪  ‬ر‪ ‬ا ‪ ‬ا ‪ (۱)   ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ر ‪   ‬را ‪ ‬ا (‪ ‬ارز‬ ‫در‪ ‬‬
‫‪   ‬را‪ ‬در‪ ‬ز ن‪ ‬‬ ‫‪ ‬راه‪   ‬‬ ‫‪ ‬و‪ (۲) ‬در‪  ‬ر ‪    ‬ا‬ ‫ی‪ ‬آن‪ ‬را‪ ‬در‪   ‬‬ ‫‪ ‬و‪  ‬ا ‪  ‬م‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬ا ‪   ‬راه‪)   ‬ا‬ ‫‪ ‬‬ ‫ه‪  ‬ن‪ ‬داده‪ ‬ا ‪    ‬ا‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫(‪ ‬‬ ‫‪ ۳۰   ۲۰ ‬د‬ ‫‪) ‬‬
‫ه‪  ‬ا ‪       ‬ا زه‪ ‬د ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬از‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬ا ‪  ‬اب‪ ‬‬ ‫‪ ‬را‪ ‬دار ‪ .‬‬ ‫(‪  ‬ای‪ ‬‬ ‫‪ ‬‬
‫ن د ‪ .‬‬ ‫ا ر را‬ ‫ده زی‬ ‫را ده زی‬ ‫راه‬
‫‪ .‬‬ ‫ن‬ ‫د را ا‬ ‫ا ر‬ ‫داده ورودی‪ :‬دادن ورودی ی‬ ‫د‬ ‫● آز‬
‫‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ب‪ ‬ا ‪   ‬و ‪  ‬ا‪  ‬دن‪ ‬ا ر ‪ ‬‬ ‫‪ ‬در‪  ‬رد‪  ‬ده‪  ‬زی‪ :‬ا ‪ ‬راه‪     ‬ا ازه‪ ‬‬ ‫●‬
‫' ده زی' و ‪ .‬‬
‫ده‪  ‬ه‪ ‬ز د‪ ‬ا ‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬آن‪     ‬‬ ‫‪ ‬ا اد‪ ‬راه‪ :  ‬در‪  ‬ر ‪   ‬ا ر ‪ ‬در ‪ ‬ا ‪ ‬ا ‪ ‬‬ ‫●‬
‫‪      ‬د‪   ‬‬ ‫‪ ‬آن‪    ‬رت‪ ‬‬ ‫‪   ‬ارا ‪  ‬ده‪ ‬ا ‪ ‬‬ ‫ل‪ ‬آن‪ ‬را‪   ‬ز ن‪  ‬ور ‪   .‬ا ‪ ‬ا ر‬ ‫ا‬
‫‪ ‬ز دی‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪ ‬‬ ‫‪ ‬ا ‪ .‬‬ ‫ر‪   ‬و‪   ‬‬ ‫ن‪ ‬داده‪ ‬ورودی‪ ‬‬ ‫‪   ‬ا ‪ ‬ا ر ‪     ‬‬
‫‪  .‬وه‪   ‬ا ‪   ،‬‬ ‫‪ ‬‬ ‫‪        ‬ش‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ز ‪ ‬‬ ‫ده‪  .  ‬ن‪ ‬ا اد‪ ‬راه‪       ‬‬ ‫ا‬
‫‪ ‬را‪ ‬‬ ‫دی‪      ‬ر‪ ‬ا‬ ‫‪ ‬ا ‪   ‬ا ر ‪ ‬‬ ‫‪  ‬ی‪ ‬آن‪ ‬ا ‪   .‬‬ ‫‪    ‬ی‪ ‬ا ر ‪   ‬‬ ‫‪ ‬‬
‫ا ‪ .‬‬ ‫ای ای ارا راه‬ ‫ا ادی‬ ‫‪.‬‬ ‫ار‬
‫‪ ‬‬ ‫‪  ‬ه‪   ،‬ا ر ‪  ‬ی‪ ‬‬ ‫ن‪  ‬ی‪ ‬داده‪ ‬‬ ‫ن‪  ‬دن‪ ‬‬ ‫‪ ،‬ا‬ ‫‪ ‬در‪ ‬ا اد‪ ‬روش‪ ‬‬ ‫● ارا ‪ ‬راه‪   :    ‬‬
‫‪ ‬‬ ‫ده‪ ‬‬ ‫‪  ‬رد‪ ‬ا‬ ‫‪ ‬و‪  ‬ان‪ ‬‬ ‫‪ ‬ا ر ‪   ‬‬ ‫ر‪  ‬ای‪ ‬ارز‬ ‫‪ .‬‬ ‫‪   ‬راه‪    ‬ی‪ ‬‬ ‫‪   ‬‬
‫از آن ا ‪ .‬‬ ‫ی‬ ‫ای )‪(polynomial‬‬ ‫راه‬ ‫اب‬ ‫ا ‪.‬‬
‫داده ورودی'‪ ‬‬ ‫د‬ ‫'آز‬ ‫و‬ ‫●‬
‫‪  ‬زم‪ ‬‬ ‫‪ .‬‬ ‫ن‪ ‬را‪ ‬داد‪ ‬‬ ‫‪   ‬‬ ‫ط‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪   ‬‬ ‫ده‪  ‬زی‪ :‬راه‪    ‬د‪ ‬را‪  ‬ده‪  ‬زی‪   ‬‬ ‫●‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬و‪ ‬ا ادی‪  ‬ارد‪ .‬‬ ‫ح‪ .  ‬ا ‪ ‬‬ ‫‪  ‬د ‪    ‬ی‪ ‬را‪ ‬ا‬ ‫‪ ‬‬ ‫ط‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪   ‬‬
‫‪ ‬‬ ‫‪ ،‬‬ ‫‪  ‬دن‪ ‬‬ ‫‪ ‬ر ‪ ‬در‪ ،  ‬ا‬ ‫د‪ ‬آن‪ ‬و‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬را‪ ‬‬ ‫‪ ‬ا ‪ ‬و‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ا ‪ ‬‬
‫د‪ .‬‬ ‫ا‬ ‫ه ز‬ ‫‪،‬و‬ ‫م‬
‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪  ‬م‪ ‬را‪ ‬‬ ‫‪  ‬ده‪ ‬ا ‪  ‬ر‪ ‬د ‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪   :‬از‪ ‬آ ‪ ‬ا م‪   ‬‬ ‫‪ ‬‬ ‫ور‪ ‬‬ ‫●‬
‫‪ ‬‬ ‫ت‪ ‬‬ ‫ب‪ ‬از‪ ‬ا‬ ‫‪  ‬ای‪ ‬ا‬ ‫‪   ‬آن‪ ‬را‪ ‬در ‪  ‬ده‪  ‬زی‪  ‬ده‪ ‬ا ‪   .‬ا ‪  ‬ر‪  ‬ن‪   ‬د ‪   ‬د ‪ ‬‬
‫د‪ .‬‬ ‫ی‬ ‫را دار ‪.‬‬ ‫ب‬ ‫ا‬
‫‪    ‬ب‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫ن‪ ‬‬ ‫‪  ‬د‪ ‬را‪ ‬ا‬ ‫‪ ‬‬ ‫‪   ‬داده‪  ‬ی‪ ‬ورودی‪ ‬‬ ‫‪ ‬‬ ‫‪   :‬از‪ ‬‬ ‫‪ ‬‬ ‫●‬
‫‪ .‬‬ ‫ه‬ ‫را ای‬ ‫‪ .‬ا‬ ‫ر‬

‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫د‬ ‫از ا ای ا ا ی‬ ‫‪.۲.۲‬‬
‫رت‪ ‬‬ ‫ل‬ ‫را‬ ‫ح‬ ‫در‬ ‫د‬ ‫ا ا ی‬ ‫ا‬ ‫راه ا ای‬ ‫در ا‬
‫د ‪  .‬‬ ‫ح‬
‫‪ ‬‬
‫د‪ :‬‬ ‫ه‬ ‫از‬ ‫ال ز در‬ ‫ل‪ :‬ض‬
‫‪ ‬‬
‫دو‪ ‬‬ ‫ان و ‪ ،‬ا‬ ‫ای‬ ‫د و ه )‪ (target‬داده ه ا ‪.‬‬ ‫و‬ ‫ای از ا اد‬ ‫د‬
‫راه ‪ ‬‬ ‫ورودی د‬ ‫ای‬ ‫ار و ه ا را دا ‪ .‬ض‬ ‫ن ا‬ ‫از ا د‬
‫و د دارد‪  .‬‬
‫‪ ‬‬
‫‪ ‬ز ‪    ‬ان‪ ‬‬ ‫‪ ‬د‬ ‫(‪  .‬ض‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬را‪   ‬درک‪​)   ‬‬ ‫‪  ‬ده‪ ‬‬ ‫‪   ‬آوردن‪ ‬‬ ‫‪ ‬‬ ‫‪​ :‬ا ا‪ ‬‬
‫‪ ...‬‬ ‫ها‬ ‫ورودی داده‬

‫‪ ‬‬
‫د ‪ .‬‬ ‫ن‬ ‫را‬ ‫در‬ ‫ا‬ ‫‪ .‬دز‬ ‫د درون‬ ‫)آرا ( ورودی‪.‬‬ ‫ای از‬
‫‪ ‬‬
‫ن‪   10 ‬‬ ‫‪ ‬زوج‪  ‬د ی‪   ‬‬ ‫‪   ‬ا‬ ‫‪ ‬ای‪     ‬‬ ‫‪ .‬‬ ‫‪   10 ‬‬ ‫‪ ‬‬ ‫‪ ...‬و‪  ‬ار‪ ‬و ه‪   ‬د‬
‫‪ 5+5 ‬و‪   2+8 ‬دو‪ ‬‬ ‫‪ ‬ا‬ ‫‪  ‬ای‪ ‬ا ‪ ‬ورودی‪ ‬و د‪ ‬دارد‪ ‬‬ ‫‪   ‬دو‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫دا ‪ .‬در‪  ‬ه‪ ‬اول‪ ‬‬ ‫د‪ ‬را‪ ‬‬
‫‪     ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬در‪  ‬ن‪    ‬ار ‪  .‬ض‪   ‬ا ‪ ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫ع‪ ‬را‪   ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫ا ‪   10 ‬‬
‫‪ 0 ‬و‪ 2 ‬‬ ‫ی‪ ‬آ و‪ ‬‬ ‫‪ 8 ‬و‪ 2 ‬و‪  ‬و ‪  ‬رد‪   ‬ا‬ ‫‪  .‬ا ‪ ‬زوج‪ ‬‬ ‫ی‪ ‬زو ‪          ‬وت‪ ‬‬ ‫‪ ‬ا‬
‫ا ‪ .‬‬
‫(‪ .‬ا ر ‪ ‬‬ ‫ی‪ ‬‬ ‫‪​) ‬راه‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪  ‬ای‪ ‬ا ‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫‪ ‬‬ ‫ل‪ ‬‬
‫‪  .‬‬ ‫ار و ه‬ ‫و‬ ‫را دو دو‬ ‫د‬ ‫ا‬ ‫ای‬ ‫ی‬
‫‪ ‬‬ ‫‪   ‬ا ٓ ‪​) ‬آز‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫ده‪ ‬از‪ ‬داده‪  ‬ی‪ ‬ورودی‪  ‬ح‪   ‬د ‪   ‬زوج‪  ‬ی‪  ‬د ‪ ‬در‪  ‬ل‪  ‬ق‪   ‬‬ ‫‪ ‬ا‬
‫‪  ‬ی‪ ‬اش‪   ‬زوج‪) ,(8 ,2) ، 8 ,5) ‬‬ ‫‪ ‬اول‪ ‬در‪  ‬ر‪     ‬از‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬داده‪ ‬ورودی(‪    .‬ان‪  ‬ل‪   ‬‬ ‫د‬
‫‪   ‬زوج‪ ‬‬ ‫‪   i+1 ‬ا ی‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪i ‬ام‪    ‬م‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬د ‪   .‬‬ ‫‪ (8 ,15‬را‪ ‬‬
‫‪ ‬‬ ‫‪ ‬دو‪  ‬ار‪ ‬‬ ‫ه‪   ‬ا‬ ‫‪ ‬‬ ‫ه‪  ‬ار‪ ‬و ه‪    ‬ان‪ ‬‬ ‫‪ ،‬‬ ‫‪ ‬زوج‪  ‬ی‪ ‬‬ ‫‪   ‬د ‪ .‬در‪   ‬‬ ‫را‪ ‬‬
‫‪ n * (n-1)/2 ‬‬ ‫‪ ،‬‬ ‫‪     ‬زوج‪  ‬ی‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬روش‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬دا ‪ .‬در‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬را‪    ‬ان‪ ‬‬
‫‪ .‬‬ ‫) ‪O(n2‬‬ ‫ا ا ر‬ ‫ا‬ ‫د آورد‪.‬‬ ‫د را‬ ‫زوج‬
‫‪ ‬‬
‫‪ ‬ا ‪   ‬ا ‪ ‬روش‪   ‬‬ ‫‪ .    ‬ا ‪ ‬وا‬ ‫‪ ‬‬ ‫‪ ‬او ‪ ‬راه‪   ‬‬ ‫ه‪   ‬را‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬ ‫در‪ ‬ا ‪ ‬‬
‫‪    ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ه‪   ‬را‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ‪ .‬‬ ‫‪ ‬‬ ‫‪     ‬‬ ‫ا ‪ ‬و‪ ‬روی‪   ‬‬
‫‪    ‬د‪ ‬‬ ‫‪   ‬‬ ‫‪  .‬ا ‪ ‬از‪   ‬‬ ‫‪  ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫داده‪  ‬ی‪ ‬ز دی‪ ‬دار ‪ ‬و‪   ‬ا ‪ ‬د ‪   ‬ا ر ‪ ‬‬
‫ی‪    ‬ا ‪   ‬‬ ‫ن‪  ‬ی‪ ‬داده‪ ‬د ‪     ‬د‬ ‫‪    ‬ا ‪  ‬ر ‪      ‬ر‪  ‬دن‪ ‬‬ ‫ا ‪ ‬را‪    ‬د؟‪ ‬در‪ ‬ا ‪ ‬‬
‫ر ؟‪  ‬‬ ‫ا داده را‬ ‫؟ ا‬ ‫را‬
‫‪ ‬‬
‫‪ .‬‬ ‫‪  ‬ن‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ی‪  ‬د‪ ‬را‪  ‬ای‪ ‬راه‪   ‬‬ ‫‪  ‬م‪    ‬م‪ ‬د‬ ‫دی‪ ‬‬ ‫ض‪   ‬ا ‪ ‬ا ‪     ‬‬
‫‪ ‬از‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪ ‬‬ ‫‪ ‬را‪  ‬ا ‪ ‬‬ ‫‪ ‬راه‪   ‬‬ ‫‪  ‬ای‪  ‬ا‪  ‬دن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪    ‬ز‪ ‬‬
‫ی‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪  ‬ا ‪ ‬‬ ‫‪  .‬ا ‪  ‬ای‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬و‪   ‬راه‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬
‫‪    ‬ده‪ ‬‬ ‫دی‪  ‬ن‪ ‬را‪  ‬ده‪​)   ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫ه‪    ‬ا ‪   ‬ا زه‪ ‬د ‪   ‬راه‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬
‫‪    ‬ده‪  ‬دن‪ ‬در ‪   ‬راه‪       ‬از‪   ‬‬ ‫‪ ‬دا ‪ ‬‬ ‫د‪ ‬و (‪ .‬‬ ‫‪   ‬د ‪ ‬‬ ‫زی‪ ‬ا ر ‪ ‬در ‪ ‬و ‪   ‬‬
‫‪  .‬‬ ‫را ده‬ ‫راه‬ ‫د‬ ‫ا زه‬ ‫ه‬ ‫ا ر ا ‪.‬‬ ‫ون ده زی‬
‫‪ ‬‬
‫‪ ‬آن‪ ‬را‪ ‬در‪     ‬‬ ‫ی‪ ‬‬ ‫‪  ‬ای‪   ‬و‪  ‬را‬ ‫‪ ​) ‬ده‪  ‬زی(‪ .‬ا ا‪    ‬م‪ ‬‬ ‫ا ‪  ‬وع‪    ‬ده‪  ‬زی‪   ‬‬
‫‪ .‬‬ ‫‪   ‬‬ ‫ه‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬د ‪ ‬و‪   ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬آن‪ ‬را‪  ‬ای‪ ‬‬ ‫‪  ‬را ‪   ‬و‪ ‬‬ ‫‪ .(۱  ) ‬‬
‫‪ ،‬‬ ‫‪    ‬ان‪ ‬ا‬ ‫‪ ‬ای‪ ‬از‪ ‬ا اد‪ ‬ا ‪    .‬ر ی‪ ‬دو‪ ‬‬ ‫‪  ‬وی‪ ‬د‬ ‫‪     ‬‬ ‫او ‪  ‬را ‪ ‬ا ‪   nums   ‬‬
‫ده‪ ‬‬ ‫‪  .   ‬ده‪   ‬روش‪  ‬ای‪  ‬ده‪  ‬زی‪ ‬ا‬ ‫‪ ‬را‪       ‬و‪    ‬ار‪ ‬و ه‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪   ‬دو‪ ‬‬
‫‪  .‬ای‪ ‬‬ ‫‪ ‬از‪ ‬ا ا‪   ‬ا ‪   ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬و ‪ ، ۳  ) ‬‬ ‫ی‪ .(۶   ۳ ‬‬ ‫‪) ‬‬ ‫‪   ‬در‪ ‬‬ ‫از‪ ‬دو‪ ‬‬
‫‪    .‬ار‪ ‬در‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪   ‬از‪ ‬آن‪   ‬ا ی‪ ‬‬ ‫ط‪  (۶   ۴ ‬م‪ ‬‬ ‫‪ ‬درو ‪) ‬‬ ‫‪  ‬و ‪ ،‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬‬
‫ع‪ ‬‬ ‫‪    ‬د‪   ‬آ ‪ ‬‬ ‫ع‪ ‬ا ‪ ‬زوج‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬‬ ‫‪ ‬را‪ ‬ا د‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪  ‬درو ‪   ‬زوج‪ ‬‬
‫‪ .‬‬ ‫ز ا روش را ده‬ ‫د‪.‬‬ ‫ار و ه‬ ‫آ و ا‬
‫‪ ‬‬
‫‪1.​ def​ twoSum(nums, target):‬‬
‫‪2.‬‬ ‫)‪nums_len ​=​ ​len​(nums‬‬
‫‪3.‬‬ ‫‪​for​ i ​in​ ​range​(nums_len):‬‬
‫‪4.‬‬ ‫‪​for​ j in ​range​(i+1, nums_len):‬‬
‫‪5.‬‬ ‫‪​if​ nums[i] + nums[j]​==​target:‬‬
‫‪6.‬‬ ‫]‪​return​ [i , j‬‬
‫‪ ‬‬
‫‪  .‬ای‪ ‬ا ‪  ‬ر‪    ‬ا ‪    ‬ول‪ ‬‬ ‫‪ ‬ا ا‪   ‬‬ ‫‪ ‬ورودی‪  ‬ل‪      ‬رت‪ ‬د‬ ‫‪  ‬ق‪ ‬را‪ ‬روی‪ ‬‬ ‫‪ ‬ا ای‪ ‬‬
‫‪  ‬د ‪ ‬را‪  ‬وز‪ ‬‬ ‫‪ ‬را‪  ‬ن‪   ‬د ‪ ‬و‪   ‬ا ای‪ ‬ا ر ‪    ‬رت‪ ‬د‬ ‫‪ ‬آن‪   ‬‬ ‫‪     ‬‬ ‫‪ ‬وا ‪  ‬د‪ ‬ر ‪ ‬‬ ‫روی‪ ‬‬
‫‪ .‬‬ ‫‪ ‬را‪  ‬ی‪ ‬آن‪ ‬‬ ‫‪ ‬و‪  ‬ار‪ ‬‬ ‫‪   ‬‬ ‫ی‪    ‬د‪    ‬ا ‪ ‬روی‪  ‬ار‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪ .‬و ‪   ‬‬ ‫‪ ‬‬
‫‪  .‬‬ ‫ر‬ ‫در‬ ‫ا ا‬ ‫رت د‬ ‫ل ا ر را ا‬

‫‪ ‬‬
‫‪ ‬‬ ‫ارا راه‬
‫‪  ‬ق‪ ‬روی‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫‪ ‬دا ‪ ‬‬ ‫‪ ‬راه‪    ‬ی‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬ا ‪    ‬رت‪ ‬‬
‫(‪  .‬‬ ‫)ارا راه‬ ‫د‬ ‫ادا‬ ‫راه‬ ‫دن ای‬ ‫ا ‪،‬‬
‫‪ ‬‬
‫‪ ‬از‪ ‬ا ر ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬ا اد‪ ‬روش‪ ‬راه‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬راه‪     ‬روش‪  ‬ی‪  ‬و ‪ ‬و د‪ ‬دار ‪ .‬از‪ ‬‬ ‫ای‪ ‬‬
‫‪   ‬ا ر ‪     ‬ر ‪ .‬‬ ‫‪ ‬ا م‪ ‬‬ ‫‪ ‬ای‪    ‬ار ی‪ ‬ا‬ ‫ح‪ ‬ا ر ‪ ‬‬ ‫ر ی‪  ‬اری‪ ‬ا م‪   ‬د ‪   .‬ا‬
‫‪    ‬ا ‪       ‬‬ ‫‪ ‬‬ ‫‪     ‬راه‪    ‬ی‪  ‬ا‪ .  ‬در‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫‪ ‬د ‪ ‬‬ ‫‪ ‬‬ ‫روش‪ ‬د ‪ ‬‬
‫‪ .‬‬ ‫ا ر را‬ ‫ا‬ ‫ا‬ ‫ن ی داده‬
‫‪ ‬‬
‫‪  ‬ق‪ ‬آن‪ ‬ا ‪      ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬‬ ‫‪   ‬ا‬ ‫‪ ‬د ‪ ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬راه‪   ‬د ‪  ‬ای‪ ‬ا ‪ ‬‬ ‫ای‪ ‬‬
‫د‪        ‬ای‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و د‪ ‬دارد‪ .‬ا ‪ ‬‬ ‫‪   (target-x ‬در‪ ‬‬ ‫‪ ‬آن‪) ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ x‬ای‪ ‬را‪ ‬در‪ ‬‬
‫‪   .‬راه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬داده‪  ‬ه‪  ‬ار‪ target-x ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ،‬در‪   ‬‬ ‫‪    ‬ار‪  x ‬در‪ ‬‬ ‫‪   ،‬ازای‪   ‬‬
‫ر‪   ‬ا ‪  .‬ی‪ ‬آن‪   ‬‬ ‫‪ .‬ا ‪ ‬ا ‪ ‬روش‪ ‬‬ ‫‪ ‬را‪    ‬ر‪ ‬از‪ ‬ا ا‪   ‬ا ‪      ‬ر ‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪     ‬‬
‫‪   ‬آ ‪   ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪      ‬‬ ‫‪    ‬ون‪ ‬‬ ‫ده‪ ‬‬ ‫ی‪ ‬ا‬ ‫ن‪ ‬داده‪ ‬د‬ ‫ا ‪ ‬از‪ ‬‬
‫ه و د دارد؟‪  ‬‬ ‫داده‬ ‫ار در‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬و‪ ‬ا‬ ‫‪ ‬آن‪ ‬را‪    ‬ان‪ ‬‬ ‫‪  ‬و‪  ‬د ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ر‪ ‬‬ ‫‪    ‬ا ‪  ‬ا ا‪   ‬‬ ‫ا ‪  ‬ای‪   ‬‬
‫‪ ‬دو ره‪ ‬‬ ‫‪    ‬ا ‪ ‬از‪ ‬ا ای‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫ی)‪ (hashtable   dictionary‬ا‬ ‫‪ ‬ا ٓن‪ ‬را‪    ‬ان‪  ‬ار‪ ​  ‬د‬
‫‪ x ‬در‪ ‬‬ ‫ی‪ ‬و د‪ ‬دارد؟‪ ‬ا ‪ ‬‬ ‫‪   ‬آ ‪ target-x ‬در‪ ‬د‬ ‫‪  ‬ر ‪ ‬‬ ‫‪    ‬ار‪ x ‬در‪ ‬‬ ‫‪ ‬و‪    ‬ای‪   ‬‬ ‫وع‪ ‬‬
‫‪  ‬ر ‪ ‬و د‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪  ‬دا ‪   .‬‬ ‫‪ ‬‬ ‫‪ x ‬و‪ target-x ‬را‪    ‬ان‪ ‬‬ ‫ی‪ ‬و د‪ ‬دا ‪ ‬آ ه‪ ‬ا‬ ‫د‬
‫‪  O(n) ‬ا ‪  ‬د‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬ارا ‪  ‬ه‪ ‬دارای‪ ‬‬ ‫)‪ (O(1‬ا ‪ ،‬ا ر‬ ‫ی‪   ‬در ‪) ‬‬ ‫‪ ‬در‪   ‬د‬
‫‪  ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ،‬ا ‪ ‬ا ر ‪ n ‬‬ ‫‪  ‬ر ی‪ ‬د‬ ‫ه‪  ‬ح‪   ‬د ‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬
‫‪ .‬‬ ‫ده‬ ‫ا‬ ‫ی‬ ‫ا ر‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬اول‪   ‬‬ ‫‪ ‬ا ای‪ ‬آن‪ ‬روی‪  ‬ل‪  ‬ق‪ ‬را‪ ‬د ل‪ .    ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫د‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬در‬ ‫ای‪ ‬ا‬
‫داده ورودی(‪ .‬‬ ‫د‬ ‫)آز‬ ‫د‬ ‫ی را‬ ‫د‬

‫‪ ‬‬
‫آرا ‪ ‬‬ ‫دور ا ن‬ ‫از‬ ‫ی‬ ‫د‬ ‫و‬
‫‪ ‬‬
‫ی‪ ‬وار ‪ ‬‬ ‫‪ -5 ‬را‪ ‬د‬ ‫‪ ‬آن‪ ‬‬ ‫‪   .‬د ن‪  ‬ار‪    14 ‬ان‪  ‬ل‪ ,‬و د‪ ‬‬ ‫‪ ‬دو ره‪  ‬وع‪   ‬‬ ‫‪ ‬از‪ ‬ا ای‪ ‬‬
‫‪   4 ‬رو ‪ .‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪  ‬اغ‪ ‬‬ ‫‪  14 ‬ار ‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫ی‪ ‬و د‪  ‬ارد‪ .‬‬ ‫‪ .‬ا ‪  ‬ار‪ ‬در‪ ‬د‬ ‫‪ ‬‬
‫‪ ‬ا ‪  .‬ار‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ،‬‬ ‫ی‪ ‬‬ ‫‪ 5 ‬در‪ ‬د‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫ی‪ ‬وار ‪   ‬‬ ‫‪ 5 ‬را‪ ‬در‪ ‬د‬ ‫‪ ‬آن‪ ‬‬ ‫‪ ‬‬
‫‪ 4 ‬‬ ‫ط‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬ا‬ ‫‪ .    ‬‬ ‫‪ ‬او ‪ ‬‬ ‫‪ ‬آن‪ ‬را‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬ا‬ ‫‪ 5 ‬در‪ ‬د‬ ‫ط‪   ‬‬
‫دا ‪ .‬‬ ‫ار ]‪ [1 ,3‬را‬ ‫ا ا ر‬ ‫‪.‬‬ ‫‪(3‬‬ ‫ی)‬ ‫‪ 5‬در د‬ ‫ط‬ ‫ار‬ ‫‪ (1‬و‬ ‫)‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪   ‬دو‪ ‬‬ ‫‪ ‬ای‪  ‬ده‪  ‬زی‪ ‬‬ ‫‪ ​) ‬ده‪  ‬زی(‪ .‬ا ‪ ‬ا ر ‪ ‬را‪    ‬ا ‪ ‬‬ ‫ل‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬ا ر ‪ ‬‬
‫ی‪ ‬را‪ ‬‬ ‫‪ ،‬ا ا‪ ‬د‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬ز ن‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫د‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬و‪ ‬‬ ‫‪ ‬د‬ ‫‪ ‬‬ ‫ا ر ‪ ‬‬
‫ی‪ ‬‬ ‫‪ ‬و‪  ‬ار(‪   ‬د‬ ‫‪   ) ‬ان‪ ‬زوج‪ ‬‬ ‫‪ ‬را‪    ‬اه‪ ‬ا‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪  ‬ر ‪   ‬‬ ‫وار ‪   ‬‬
‫‪   ‬د ‪ .(1  ) ‬‬ ‫‪     ‬و‪  ‬را‬ ‫‪ ‬ادا ‪   ‬د ‪ .‬ا ا‪  ‬م‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬و‪   ‬‬ ‫‪   ‬‬ ‫ا‬
‫‪   ‬رو ‪   .(7   3  ) ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬در‪ ‬‬ ‫‪ .(2  ) ‬آ ه‪ ‬در‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪   ‬د‬
‫ط‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬ا ‪ ‬و‪ ‬ا‬ ‫‪ ‬را‪ ‬‬ ‫ی‪ ‬و د‪ ‬دارد؟‪ ‬در‪  ‬رت‪ ‬و د‪ ‬‬ ‫‪i ‬ام‪ ‬در‪ ‬د‬ ‫‪ ‬‬ ‫‪   ‬ا ٓ ‪ ‬‬ ‫وار ‪   ‬‬
‫‪   ‬‬ ‫ی‪ ‬ا‬ ‫‪ i‬ام‪ ‬را‪   ‬د‬ ‫ی‪ ‬و‪  i ‬ا ‪  ‬د‪ 4  ) ‬و‪ .(5 ‬در‪   ‬ا ‪  ‬رت‪ ‬‬ ‫‪ ‬در‪ ‬د‬ ‫‪ ‬‬ ‫اب‪  ‬ار‪ ‬‬
‫د ‪  .‬‬ ‫ر ادا‬ ‫‪ (7‬و‬ ‫)‬
‫‪ ‬‬

‫‪1.​ def​ twoSum(nums, target):‬‬


‫‪2.‬‬ ‫}{ = ‪h‬‬
‫‪3.‬‬ ‫‪​for​ i ​in​ ​range​(​len​(nums))​:‬‬
‫‪4.‬‬ ‫‪​if​ target​-​nums[i] in h​:‬‬
‫‪5.‬‬ ‫]‪​return​ [h[target​-​nums[i]], i‬‬
‫‪6.‬‬ ‫‪​else:‬‬
‫‪7.‬‬ ‫‪h[nums[i]] ​=​ i‬‬
‫‪ ‬‬
‫ق دارای‪ ‬‬ ‫‪،‬ا ر‬ ‫‪.‬‬ ‫و داده ی ورودی‬ ‫را دو ره ور‬ ‫در ا‬
‫‪ .‬‬ ‫)‪O(n‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫و را آن را ای‬ ‫راه‬ ‫در‬ ‫د‬ ‫ن‬ ‫ل‬ ‫ا‬
‫‪ ‬‬ ‫د ‪ .‬‬ ‫ن‬ ‫را‬ ‫دن‬ ‫ه‬
 (List) .۳
 
 
‫ن )‪ (List‬‬ ‫در‬ ‫‪۱.۳‬‬
‫‪ ‬‬ ‫‪ ‬آن‪   ‬د‬ ‫ده‪ ‬از‪ ‬ا‬ ‫‪   ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ای‪ ‬از‪  ‬د ‪ ‬را‪ ‬در‪  ‬د‪     ‬دارد‪   .‬‬ ‫ن‪ ‬داده‪ ‬ا ‪   ‬د‬ ‫‪   ‬‬

‫‪ ‬و‪ ‬آرا ‪  ‬دل‪   ‬در‪ ‬‬ ‫ن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ a[i]    a ‬د ‪.    ‬در‪ ‬ز ن‪ ‬‬ ‫)‪- (i + 1‬ام‪ ‬‬ ‫ا ‪    .‬ان‪  ‬ل‪   ‬‬

‫‪   .  ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫‪   ‬آرا ‪ ‬آن‪ ‬ا ‪    ‬ل‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬وت‪ ‬در‪  ‬ه‪  ‬ده‪  ‬زی‪  ،‬وت‪ ‬ا‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫‪ ‬‬

‫ی را از آن ف د‪ .‬‬ ‫د‬ ‫ا‬ ‫ی را ا ی‬ ‫ان‬ ‫ان ل‬

‫‪ ‬را‪ ‬در‪ ۱۰ ‬روز‪ ‬آ ه‪  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ارزش‪  ‬م‪ ‬‬ ‫‪  ‬ر د‪ ‬دارد‪   .‬ا ‪  ‬ا ‪ ‬ا ا ‪   ‬‬ ‫ری‪ ‬از‪ ‬‬ ‫‪ ‬در‪   ‬‬

‫‪ ‬‬ ‫‪   ‬د ‪ ‬و‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬در‪   ‬روز‪   ‬‬ ‫‪ ‬ا ‪ :‬در‪ ‬ا ‪  ‬رت‪  ‬ار‪ ‬ارزش‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬راه‪ ‬ا‬ ‫‪ ،‬‬

‫ا ‪ .‬‬ ‫د‬ ‫ری‬ ‫داده‬ ‫و ون‬ ‫رت‬ ‫آن روز‬ ‫ا‬

‫‪ ‬‬
‫ن‪ ‬‬ ‫در‬ ‫ه ر‬
‫‪ ‬‬
‫‪a = [] ‬‬ ‫‪ ‬‬

‫‪a = list() ‬‬ ‫‪ --‬روش دوم‪ ‬‬

‫‪a = [value1, value2, value3] ‬‬ ‫د ‪ ‬‬ ‫ادی‬ ‫اه‬

‫‪a = [0 for i in range(n)] ‬‬ ‫‪ ‬‬ ‫او‬ ‫ار د‬ ‫ل‪n‬و‬


‫‪ ‬‬

‫‪value = a[index] ‬‬ ‫‪ ‬‬ ‫ا‬ ‫ار‬ ‫ز‬

‫‪value = a[-1] ‬‬ ‫‪ ‬‬ ‫ار‬ ‫آ‬ ‫ز‬

‫‪b = a[i: j] ‬‬ ‫‪ j i‬‬ ‫از ا‬ ‫ز‬ ‫ز‬

‫‪a.append(value) ‬‬ ‫‪  ‬‬ ‫ا ی‬ ‫دن‬ ‫ا‬

‫‪len(a) ‬‬ ‫‪ ‬‬ ‫آوردن ل‬

‫‪for i in range(len(a)): ‬‬ ‫)‪ ‬‬ ‫ی‬ ‫روی‬ ‫ار‬


‫‪... ‬‬ ‫(‪ ‬‬ ‫ا ده از ا‬

‫‪for value in a: ‬‬ ‫‪ ‬‬ ‫ی‬ ‫روی‬ ‫ار‬


‫‪... ‬‬

‫‪for i, value in enumerate(a): ‬‬ ‫‪ ‬‬ ‫روی‬ ‫ار‬


‫‪... ‬‬ ‫(‪ ‬‬ ‫ا‬ ‫ن د‬ ‫)‬

‫‪a + b ‬‬ ‫‪ ‬‬ ‫ن دو‬


‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬ ‫د‬ ‫و وش‬ ‫‪.۲.۴‬‬


‫‪      ‬ا ‪     ‬ا ‪ ‬‬ ‫‪ ‬داده‪  ‬ه‪ ‬ا ‪    .‬ض‪ ‬ا‬ ‫‪ ‬در‪    ‬زه‪ ‬ز‬ ‫‪   ‬‬ ‫‪ ‬از‪ ‬ارزش‪   ‬‬ ‫‪ :‬‬
‫دا ‪ .‬‬ ‫ر را‬ ‫از ا‬ ‫د‬ ‫ای‬ ‫‪،‬‬ ‫و وش‬ ‫را‬
‫ه‪ ‬‬ ‫‪ ‬‬ ‫ر‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫(‪   .‬آوردن‪    ‬ل‪   ‬‬ ‫‪  ​) ‬‬ ‫‪ ‬را‪   ‬درک‪ ‬‬ ‫‪ :‬ا ا‪  ‬ز‪ ‬دار ‪   ‬‬
‫‪  .‬‬ ‫را‬ ‫در‬ ‫ا‬ ‫ر‬ ‫ها ‪.‬ا‬ ‫را در‬
‫ز ا ‪ .‬‬ ‫ا‬ ‫ادی روز‬ ‫در‬ ‫م‬ ‫ض‬

‫‪ ‬‬ ‫روز ی اول‬ ‫م‬ ‫ارزش‬


‫‪ ‬‬
‫‪ ‬و‪ ‬در‪ ‬روز‪ ‬دوم‪ ‬‬ ‫‪ ‬و‪  ‬ن‪ ‬روز‪  ‬و ‪    ‬دی‪  ‬ده‪ ‬ا ‪ .‬ا ‪ ‬آن‪ ‬را‪ ‬در‪ ‬روز‪ ‬اول‪ ‬‬ ‫در‪ ‬ا ‪  ‬ل‪ ‬ا ‪   ‬را‪ ‬در‪ ‬روز‪ ‬اول‪ ‬‬
‫‪ ‬و‪ ‬روز‪  ‬رم‪ ‬‬ ‫‪ ‬را‪ ‬روز‪ ‬دوم‪ ‬‬ ‫ر‪  (y ‬ر‪  ‬ده‪ ‬ا ‪ .‬ا ‪ ‬‬ ‫‪   ‬وا ‪ ‬‬ ‫‪) ‬ر ل‪ - ‬د ر‪ ‬‬ ‫و ‪ ‬در‪ ‬وا ‪ ‬دو‪ ‬وا ‪ ‬‬
‫‪   ‬آ ‪ .‬در‪ ‬ا ‪  ‬رت‪  ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬روز‪  ‬م‪ ‬و‪  ‬وش‪ ‬در‪ ‬روز‪ ‬‬ ‫‪  ‬د‪ ‬از‪ ‬‬ ‫و ‪ ۵ ‬وا ‪  ‬د‪  ‬ده‪ ‬ا ‪ .‬‬
‫‪ .‬‬ ‫ر ‪10‬‬ ‫د ‪18-8‬‬
‫ار د ‪ .‬‬ ‫ز‬ ‫ا در‬ ‫دار ق را‬ ‫داده ی‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫در‬ ‫دار‬

‫‪ ‬‬
‫‪  ‬ای‪ ‬‬ ‫ی‪ ‬‬ ‫(‪ .‬‬ ‫ی‪ ‬‬ ‫‪​) ‬راه‪   ‬‬ ‫‪ ‬ا‬ ‫ی‪ ‬‬ ‫‪ ،‬او ‪ ‬راه‪        ‬ح‪   ‬روش‪ ‬‬ ‫در‪   ‬‬
‫‪ ‬از‪ ‬روز ی‪   ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪     ‬از‪ ‬روز ‪  ‬ای‪ ‬‬ ‫‪ -‬وش‪ ‬را‪   ،‬در‪   ‬‬ ‫‪    ‬ت‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ ‬‬
‫‪ ‬روز‪ ‬‬ ‫‪  ‬و ‪ ‬ا‬ ‫‪    ‬ر ه‪ ‬‬ ‫ده‪ ‬‬ ‫‪   ‬در‪   ‬ا‬ ‫‪ ‬آور ‪  .‬ای‪ ‬ا ‪  ‬ر‪    ‬ا ‪ ‬از‪ ‬دو‪ ‬‬ ‫آن‪  ‬ای‪  ‬وش‪ ،‬‬
‫‪  ‬و ‪ ‬‬ ‫‪ .‬در‪    ‬ار‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ (j ‬در‪ ‬‬ ‫‪ ‬روز‪  ‬وش‪) ‬‬ ‫‪ ‬درو ‪ ‬ا‬ ‫‪ (i ‬و‪  ‬ر ه‪ ‬‬ ‫‪) ‬‬
‫‪   ‬آن‪   (i+1) ‬آ ‪ ‬‬ ‫‪ ‬درو ‪ ‬از‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫ی‪   ،‬ا‬ ‫‪ ‬‬ ‫(‪ ‬و‪  ‬ای‪   ‬‬ ‫‪   ‬رو ‪) ‬روز‪ ‬‬ ‫اغ‪   ‬‬
‫‪ ‬‬ ‫د‪ ‬آ ه‪  ،‬ان‪  ‬د‪ ‬را‪ ‬‬ ‫‪ -‬وش‪ ‬‬ ‫‪ ‬‬ ‫‪  .‬ای‪   ‬‬ ‫‪ (n-1) ‬را‪        ‬ان‪ ‬روز‪  ‬وش‪ ‬در‪   ‬‬
‫‪ ‬‬ ‫‪ ‬ا ‪ ‬روش‪ ‬را‪    ‬رت‪ ‬د‬ ‫‪ ‬وا‬ ‫‪ ‬ا ‪ .‬در‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪ ‬را‪ ‬‬ ‫‪ -‬و ‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬
‫‪  .‬‬ ‫ا ر در‬ ‫ن‬ ‫ا‬
‫‪ ‬‬
‫‪     ‬روز‪       ‬از‪ ‬روز ی‪ ‬‬ ‫‪ ‬آن(‪   ، ‬در‪   ‬‬ ‫‪ ‬‬ ‫‪ ،‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪  ) ‬‬ ‫‪ ‬‬ ‫ای‪ ‬‬
‫‪ ‬آ ه‪ n*(n-1)/2 ‬‬ ‫‪   ‬داده‪  ‬ی‪  ‬م‪ ‬را‪ ‬در‪ ‬آن‪ ‬دار ‪ n ‬‬ ‫‪ -‬وش‪ ‬را‪    ‬زد‪ .‬ا ‪  ‬اد‪ ‬روز‬ ‫‪ ‬‬ ‫ش‪   ‬‬
‫‪  .‬‬ ‫) ‪O(n2‬‬ ‫ا ا ر‬ ‫ا‬ ‫‪.‬‬ ‫ن‬ ‫ا‬ ‫‪ -‬وش را‬
‫‪ ‬‬
‫‪  ‬ی‪ ‬‬ ‫ا ‪   ‬راه‪   ‬‬ ‫ه‪ ‬از‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ .‬ا ‪ ‬‬ ‫‪    ‬م‪ ‬در ‪  ‬ای‪   ‬ا ‪ ‬‬ ‫ی‪ ‬‬ ‫ا ر ‪ ‬‬
‫‪ .‬‬
‫‪ ‬‬ ‫‪   ‬د ‪    ‬دن‪ ‬آن‪ ‬را‪ ‬‬ ‫‪  ‬ر‪     ‬و‪ ‬‬ ‫‪ ‬در‪ ‬وا ‪ ‬‬ ‫‪   ‬راه‪   ‬‬ ‫ای‪  ‬ا‪  ‬دن‪ ‬راه‪       ‬ا‬
‫‪   ‬ا ‪ ‬ا ر ‪ ‬در‪ ‬وا ‪    ‬ر‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ارا ‪  ‬ه‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬در‪  ‬رد‪  ‬ه‪  ‬ر‪ ‬ا ر ‪ ‬‬ ‫‪   .‬‬ ‫ح‪ ‬‬ ‫و‪ ‬ا‬
‫‪ ‬از‪ ‬‬ ‫‪  ‬ا ‪  ‬د‪ ‬‬ ‫‪ (n-1   i+1 ‬را‪   .    ‬ا ‪ ‬‬ ‫‪  ) ‬‬ ‫(‪   ‬از‪   ‬‬ ‫‪ ‬‬ ‫‪ ) ‬ر‬ ‫‪ ‬‬
‫آورد‪ .‬‬ ‫از روز را‬ ‫در‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دور ‪ ‬در‪ ‬وا ‪  ‬ار ی‪ ‬ز دی‪ ‬را‪  ‬ای‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬روش‪ ‬‬ ‫‪ ‬‬
‫‪ ‬را‪  ‬ن‪   ‬د (‪     ‬‬ ‫‪ ‬ا م‪   ‬د ‪ .‬ا ‪  ‬ار ‪  ‬ی‪ ‬ا ‪     ‬ا ر ‪ ‬را‪  n ‬ر‪  n) ‬ل‪ ‬‬ ‫‪ ‬از‪   ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪ (n-1   i+1   ‬و‪  ‬ای‪ ‬‬ ‫‪   ‬از‪) i ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪     ‬از‪ ‬‬ ‫‪ .‬ا ‪ ‬در‪ ‬‬
‫‪  ‬د ‪ .‬در‪ ‬وا ‪ ‬‬ ‫‪ ‬‬ ‫‪   n-1   i+2 ‬د ل‪ ‬‬ ‫‪  ‬ی‪ ‬آن‪ ‬‬ ‫‪ i+1 ‬در‪ ‬دور‪     ،  ‬‬ ‫‪   ‬از‪ ‬‬
‫‪ ‬از‪ ‬ا ای‪ ‬آن‪      ‬د‪ ‬‬ ‫‪     ‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬در‪ ‬آن‪ ‬‬ ‫ه‪ ‬ای‪ ‬از‪ ‬‬ ‫‪ ‬‬
‫(‪  .‬‬ ‫‪ i+1‬را‬ ‫)‬
‫‪ ‬‬
‫د(‪   ‬از‪  ‬ف‪ ‬‬ ‫‪ ‬‬ ‫‪ ) ‬ون‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آوردن‪  ‬ار‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪   ‬راه‪    ‬را‬ ‫‪   ‬‬ ‫در‪    ‬ل‪ ‬‬
‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ودن‪   ‬‬ ‫‪ ‬آن‪ ‬‬ ‫‪ ‬ا اد‪ ‬راه‪ .(  ‬در‪  ‬ض‪   ‬دا ‪   ‬‬ ‫‪  ‬ار ‪​) ‬‬ ‫‪ ‬از‪ ‬ا ای‪   ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ :‬در‪ ‬وا ‪  ‬ای‪ ‬‬ ‫‪   ‬از‪ ‬آن‪   ‬را ‪ ‬و‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬آوردن‪  ‬ار‪ ‬‬ ‫و‪ ‬‬
‫‪ .‬‬ ‫را‬ ‫و‬ ‫ار‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬و‪  ‬وزر‬ ‫‪ ‬د ‪    ‬ی‪  ‬ف‪ ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ ‬درو ‪   ‬ا ر ‪ ‬را‪ ‬‬ ‫ا ‪  ‬ای‪  ‬ف‪  ‬ر ی‪  ‬اری‪ ‬در‪ ‬‬
‫‪  .‬ای‪ ‬ا ‪  ‬ر‪    ‬ا ‪ ‬ا ر ‪ ‬را‪   ‬ا ‪  ‬رت‪ ‬‬ ‫(‪ ‬‬ ‫‪  ) ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬ا ودن‪   ‬‬ ‫‪ ،‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آن‪ ‬‬ ‫ب‪     ‬و‪   ‬روز ی ​‪ ‬‬ ‫‪    ‬ر‪   ‬روز‪ D ‬را‪    ‬ان‪ ‬روز ​‪  ‬وش ​‪ ‬ا‬ ‫‪ :‬از‪ ‬ا ای‪ ‬‬ ‫ض‪ ‬‬
‫‪ ‬ا ‪ ‬ا ‪    ‬وش‪ ‬در‪ ‬روز‪ D ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫د‬ ‫‪ -‬وش‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آور ‪​) ‬ارا ‪ ‬راه‪ .(    ‬ا ‪ ‬‬ ‫م‪ ‬را‪ ‬‬
‫ا م د‪  .‬‬
‫‪ ‬‬
‫‪ ‬روز‪ ‬‬ ‫‪ ‬ز ن‪  ‬ای‪ ‬‬ ‫‪   ‬ا ‪  ‬ا ‪ ‬روز‪  ‬رم‪   ‬را‪  ‬و ‪ ‬‬ ‫‪     ‬‬ ‫‪    ‬دار‪ ‬‬ ‫‪  ‬ان‪  ‬ل‪   ‬‬
‫‪  ‬ای‪ ‬روز‪   ‬را ‪ ‬ا ‪ ‬ز ا‪ ‬ا ‪ ‬‬ ‫‪ ‬ا ‪ .‬‬ ‫‪ ‬در‪ ‬روز ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ (8) ‬‬ ‫‪   ‬‬ ‫م‪ ‬ا ‪   ‬‬
‫‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬را‪  ‬و ‪  ‬و ‪  ‬ارد‪     ‬روز ی‪   ‬را‪  ‬ای‪  ‬ا‪  ‬دن‪  ‬ار‪ ‬‬ ‫‪ ‬‬ ‫ا ‪ ‬در‪ ‬روز‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دو ره‪   ‬‬ ‫‪  .‬ا ‪  ‬زی‪   ‬‬ ‫‪  ‬م‪ ‬در‪ ‬روز‪  ‬رم‪ (17) ‬را‪ ‬‬ ‫(‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪) 8   ‬‬
‫‪  .‬‬ ‫را‬ ‫از ا ا روز‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬را‪  ‬ا ‪    ‬ا ‪ ‬‬ ‫‪  ‬م‪ ‬در‪ ‬روز ی‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬روز‪    ‬ان‪ ‬روز‪  ‬وش‪ ،‬‬ ‫‪   ‬در‪   ‬‬ ‫‪ ‬‬
‫‪   ‬ا ‪  ‬د ‪  ‬اب‪ ‬‬ ‫‪ ‬آ ه‪  ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ .  ‬ا ‪ ‬ا ‪  ‬ان‪ ‬را‪  ‬ای‪     ‬از‪ ‬روز‪  ‬ی‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫د‪ ‬‬
‫‪ ‬‬ ‫‪      ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪ ‬را‪ ‬روی‪ ‬داده‪ ‬ورودی‪ ‬‬ ‫‪   ‬دور‪ ‬‬ ‫(‪ .‬در‪ ‬‬ ‫رد‪    ‬ا ‪  ‬د‪​)  ‬ا ر ‪ ‬‬
‫ا ‪ .‬‬ ‫ا ر در‬
‫‪ ‬دارد‪     ‬‬ ‫‪     ‬ا ر ‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪    ‬ا ‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا‬ ‫ای‪ ‬‬
‫‪  .‬ای‪ ‬ا ‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬در‪ ‬روز ی‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬م‪ ‬را‪ ‬دار ‪  ‬ار‪    ‬د‪  .‬ای‪    ‬ار‪   ،‬‬ ‫‪   ‬‬ ‫اد‪ ‬روز‬
‫‪ ‬ا ‪   ) ‬د‪ O(1) ‬‬ ‫‪ ‬ا م‪ ‬ا ‪  ‬ر‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬م‪ ‬در‪ ‬روز‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫ر‪ ‬‬
‫‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ،‬‬ ‫‪ n ‬‬ ‫ا ‪ ‬ا ‪  ‬ل‪ ‬ا ‪ ‬‬ ‫‪  ‬ارد‪ .‬‬ ‫‪ ‬‬ ‫‪    ‬اد‪ ‬‬ ‫ن‪ ‬داده‪    ‬د(‪ ‬و‪ ‬‬
‫‪ .‬‬ ‫ا ر )‪O(n‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪   .(2  )     ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪    ‬را ‪ ‬از‪  ‬ع‪ ‬‬ ‫‪    ‬م‪ ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬وع‪   ‬‬
‫ن(‪ ‬در‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪ ‬ر‬ ‫‪ ) ‬رت‪ ‬د‬ ‫‪  ‬م‪    ‬ار‪ ‬او ‪ ‬‬ ‫‪ ‬‬ ‫اری‪ ‬‬ ‫‪  ‬م‪  pmin ‬ای‪ ‬‬
‫‪4  ) ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪  ‬د‪    ‬ار‪ ‬او ‪ ‬‬ ‫اری‪ ‬‬ ‫‪ ‬د ‪    ‬م‪  profit ‬ای‪ ‬‬ ‫‪   .(3  ) ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪    ‬ار‪ ‬‬ ‫‪ ‬را‪  ‬وز‪  .    ‬ای‪ ‬ا ‪  ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬در‪    ‬ار‪  ‬ان‪ ‬‬ ‫ده‪ ‬از‪   ‬‬ ‫‪   ‬ا‬ ‫(‪ .‬‬
‫‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪     ‬در‪ ‬روز‪ i ‬ام‪ ‬را‪    ‬ض‪ ‬‬ ‫‪ ‬‬ ‫‪ .(7  ) ‬آ ه‪  ‬د‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫و‪ ‬‬
‫‪ ‬‬ ‫‪   ‬آ ‪ .‬‬ ‫‪ ‬را‪ ‬در‪ ‬روز‪i ‬ام‪  ‬و ‪ ‬‬ ‫‪  ‬د‪ ‬در‪  ‬ر ‪   ‬‬ ‫‪ .‬ا ‪  ‬ار‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫روز ی‪ ‬‬
‫‪8  ) ‬‬ ‫‪  ‬د‪ ‬در‪   ‬‬ ‫‪     ‬و‪    ‬ان‪  ‬ان‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬روز ی‪ ‬‬ ‫‪  ‬د‪ ‬‬ ‫ا ‪  ‬ار‪ ‬را‪   ‬‬
‫‪ ‬را‪ ‬‬ ‫‪  ‬دا ‪     .(10  ) ‬ز ‪  ‬ده‪  ‬زی‪ ‬ا ر ‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪  ‬د‪ ‬‬ ‫‪  ‬ار‪  ‬ان‪ ‬‬ ‫(‪   .‬از‪ ‬ا م‪ ‬‬
‫د ‪ .‬‬ ‫ن‬

‫‪1. import sys‬‬


‫‪2.​ def​ maxProfit(prices):‬‬
‫‪3.‬‬ ‫‪pmin = sys.maxint‬‬
‫‪4.‬‬ ‫‪profit = 0‬‬
‫‪5.‬‬
‫‪6.‬‬ ‫‪​for​ i in range(len(prices)):‬‬
‫‪7.‬‬ ‫)‪pmin = ​min​(prices[i], pmin‬‬
‫‪8.‬‬ ‫)‪profit = ​max​(profit, prices[i]-pmin‬‬
‫‪9.‬‬
‫‪10.‬‬ ‫‪​return​ profit‬‬
‫‪ ‬‬
‫‪   ‬در ‪  ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪       ‬‬ ‫‪ ‬را‪  ‬ر‪ ‬د ‪  ‬ور‪     ‬و‪   ‬داده‪  ‬ی‪ ‬ورودی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬وا‬ ‫در‪   ‬‬
‫‪ ‬‬ ‫‪ .‬‬
‫‪ ‬‬ ‫ه را‬ ‫‪ ۳.۴‬د‬

‫‪    ‬دی‪ ‬از‪  ‬زه‪   ​n   1 ‬در‪   ‬ا ‪ ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪  :‬اد‪  n-1 ‬د‪    ‬اری‪    ‬د ‪ n   1 ‬داده‪  ‬ه‪ ‬ا ‪ .‬‬
‫‪ .‬‬ ‫ه( را‬ ‫) د‬ ‫‪ n-1‬د‬
‫(‪   .‬ا ‪  7 ‬د‪   ‬‬ ‫ه‪ ‬ا ‪  ​) ‬‬ ‫‪ ‬را‪ ‬در ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪  :‬ر‪ ‬را‪      ‬ل‪  ‬وع‪ ‬‬
‫‪ .‬‬ ‫آ ‪6‬‬ ‫ه‬ ‫‪ ،‬د‬ ‫رت ز دا‬ ‫اری در زه ‪8 1‬‬

‫‪ ‬‬
‫د در زه ‪ 8 1‬‬ ‫از ‪7‬‬
‫‪ ‬‬
‫ده‪ ‬از‪ ‬‬ ‫(‪  .‬ای‪ ‬ا ‪  ‬ر‪   ‬ا‬ ‫ی‪ ‬‬ ‫‪​) ‬راه‪   ‬‬ ‫‪ ‬را‪  ‬ر ‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬ا ا‪ ‬روش‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ای‪ ‬‬
‫‪  ‬ا‪  ‬د‪  ‬اب‪  ‬رد‪ ‬‬ ‫‪ ‬ا اد‪    ‬د ‪  .‬اری‪   ‬در‪ ‬‬ ‫‪ ‬از‪ ‬ا اد‪ n   1 ‬درون‪ ‬‬ ‫‪  ‬ار‪    ‬ر‪   ‬د ل‪ ‬‬ ‫‪ ‬‬
‫‪    ‬د‪ .‬از‪ ‬آ ‪   ‬در‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪  ‬د‪    ‬ه‪ n ‬ا ‪   ‬در‪ ‬ا ‪  ‬رت‪ ‬در‪ ‬آ‬ ‫‪ ‬‬ ‫‪ .‬در‪ ‬‬ ‫‪   ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪  .‬ا ‪ ‬‬ ‫‪   n*(n-1)   ‬‬ ‫‪  ،‬اد‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫ار‪    ‬اره‪   ‬‬
‫‪ .‬‬ ‫) ‪O(n2‬‬ ‫ا ا ر‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫ل‪ ‬ا ‪ ‬روش‪ ‬آن‪ ‬ا ‪      ‬ر‪   ‬‬ ‫ر‪ ‬ز ن‪    ‬د‪ .‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ا ‪ ‬روش‪   ‬ا ‪ ‬و‪ ‬روی‪   ‬‬
‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪  ‬دن‪ ‬داده‪      ‬ان‪ ‬روش‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪    ‬ل‪   ‬‬ ‫ده‪ ‬ای‪ ‬‬ ‫‪ ‬ا‬ ‫ات‪ ‬در‪ ‬دور ی‪ ‬‬ ‫و‪ ‬از‪ ‬‬
‫(‪ .‬‬ ‫ا اد راه‬ ‫د داد )‬ ‫را‬
‫‪ ‬‬
‫‪  ‬دن‪ ‬‬ ‫‪    ‬د؟‪   ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪   ‬آ ‪ ‬ا ‪ ‬‬ ‫ا ‪ ‬در‪ ‬ادا ‪  ‬ای‪ ‬راه‪      ‬ر ‪   ‬‬
‫‪ .‬‬ ‫ز‬ ‫ق‬

‫‪ ‬‬
‫‪ ‬‬ ‫‪) ‬ا‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪ i-1 ‬در‪ ‬‬ ‫‪       ‬از‪  ‬ار‪    ‬ه‪    ،‬د‪ i ‬در‪ ‬‬ ‫‪  ‬ق‪   ‬‬ ‫‪ ‬د ‪ ‬در‪ ‬‬
‫‪  ‬ار‪ ‬‬ ‫‪ ‬از‪   ‬‬ ‫‪ .  ‬‬ ‫‪ ‬ا اد‪ ‬را‪ ‬‬ ‫‪  ‬وع‪    ‬د(‪  .‬ا ‪  ‬ای‪   ‬راه‪        ‬ا ‪ ‬‬ ‫‪ ‬از‪ ‬‬
‫‪  i ‬د‪ ‬آ ه‪  ‬ار‪ ‬‬ ‫‪ .‬ا ‪  ‬د‪ i+1 ‬در‪ ‬ا‬ ‫ده‪   ‬‬ ‫‪ (n-2 ‬ا‬ ‫‪   (0 ‬ا ی‪ ‬آن‪ ) ‬ا‬ ‫‪) ‬ا‬ ‫‪ ‬از‪ ‬ا ای‪ ‬‬
‫‪  .‬‬ ‫ز ا ا ر را ده‬ ‫(‪.‬‬ ‫ا )ارا راه‬ ‫‪(i+1‬‬ ‫ه را )‬
‫‪ ‬‬
‫‪1. ​def​ findMissing(nums, n):‬‬
‫‪2.‬‬ ‫)‪nums = ​sorted​(nums‬‬
‫‪3.‬‬ ‫‪for​ i ​in​ ​range​(1, n):‬‬
‫‪4.‬‬ ‫‪if​ nums[i-1] != i:‬‬
‫‪5.‬‬ ‫‪return​ i‬‬
‫‪6.‬‬ ‫‪return​ n‬‬
‫‪ ‬‬
‫ت‪ ‬ا م‪  ‬ه‪ ‬در‪   ‬‬ ‫‪   ‬‬ ‫ه‪ ‬را ‪ ‬ا ‪ ‬ا ‪    ‬ا ش‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪   ،‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ای‪ ‬‬
‫‪ ‬‬ ‫‪ ‬ا ‪  n-1   ‬ر‪  ‬ار‪    ‬د‪ ،‬‬ ‫‪ ‬و‪      ‬ن‪ ‬ا ‪ ‬ا ر ‪   ‬دارای‪   ‬‬ ‫‪ (2  ) sort‬را‪ ‬در‪   ‬‬
‫‪  O(n*log(n)) ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪ sort   ‬دارای‪ ‬‬ ‫‪ ‬ا‬ ‫‪ O(n) ‬ا ‪ .‬ا ‪ ‬در‪ ‬وا ‪ ‬‬ ‫‪   ‬‬
‫د‪ .‬‬ ‫))‪ O(n*log(n‬ا ا‬ ‫‪،‬‬
‫‪ ‬‬
‫‪ ) ‬‬ ‫‪ ‬راه‪   ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ .‬در‪ ‬ادا ‪ ‬‬ ‫‪ ‬‬ ‫د ‪ ‬‬ ‫‪  ‬زی‪   ‬ا ازه‪ ‬ای‪    ‬ش‪ ‬را‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫راه‪     ‬ا‬
‫د ‪  .‬‬ ‫)‪ (O(n‬را ادا‬
‫‪ ‬‬
‫ع‪    ‬د ‪ ‬از‪ n   1 ‬و د‪ ‬‬ ‫‪ ‬‬ ‫ل‪  ‬ای‪ ‬‬ ‫‪       ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫ای‪  ‬ا‪  ‬دن‪ ‬روش‪ ‬‬
‫‪ ‬و د‪  ‬ارد‪    ،‬ان‪ ‬آن‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪ .‬از‪ ‬آ ‪    ‬د‪    ‬ه‪ ‬در‪ ‬ا ‪ ‬‬ ‫ل‪   S=n * (n+1)/2  ‬‬ ‫دارد‪ .‬ا ‪ ‬‬
‫د ‪ .‬‬ ‫ن‬ ‫ده زی ا روش را‬ ‫ز‬ ‫(‪.‬‬ ‫ا د )ارا راه‬ ‫ع‬ ‫‪S‬و‬ ‫ا س وت‬
‫‪ ‬‬
‫‪ ‬‬
‫‪1. ​def​ findMissing(nums, n):‬‬
‫‪2.‬‬ ‫)‪return​ n * (n+1) / 2 - ​sum​(nums‬‬
‫‪ ‬‬

‫‪ sum   ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪  ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ .    ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫ع‪ ‬‬ ‫‪ (2  ) sum ‬‬
‫‪ ‬‬ ‫‪ .‬‬ ‫)‪O(n‬‬ ‫ا‬
   (String) ‫ ر‬.۵
‫ن )‪ (String‬‬ ‫در‬ ‫‪ ۱.۵‬ر‬
‫‪    ‬د‪ ‬ا م‪ ‬داد‪ ‬روی‪ ‬ر ‪   ‬ا م‪    ‬د‪    .‬وت‪ ‬آن‪ ‬‬ ‫‪    ‬‬ ‫‪  ‬ار‪ ‬ا ‪    .‬ر‬ ‫ن‪ ‬داده‪ ‬ر ‪ ‬روی‪ ‬‬

‫ا ‪    ‬ار‪    ‬را ‪ ‬در‪ ‬ر ‪ ‬را‪    ‬ان‪  ‬ض‪  ‬د‪  .(immutable) ‬وه‪   ‬ا ‪  ،‬ر ی‪ ‬و ه‪ ‬ای‪ ‬روی‪ ‬ا ‪  ‬ع‪  ‬ص‪ ‬از‪ ‬‬

‫‪    .‬ان‪  ‬ل‪   upper ‬‬ ‫ن‪ ‬را ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬درون‪ ‬آن‪  ‬ده‪  ‬زی‪  ‬ه‪ ‬ا ‪    ‬ر‪ ‬را‪  ‬ای‪ ‬‬ ‫‪  ‬اول‪ ‬ا ‪   ‬در‪ ‬‬

‫‪  .‬‬ ‫ف رگ ا‬ ‫را‬ ‫دار و م وف ر‬ ‫ی از ع ر‬ ‫ا‬

‫‪ ‬‬

‫ن‪ ‬‬ ‫در‬ ‫ه ر ر‬
‫‪ ‬‬
‫‪a = “” ‬‬ ‫ر ‪ ‬‬

‫‪a = “Hello World!” ‬‬ ‫ار او ‪ ‬‬ ‫ر‬

‫‪a.replace(“o”, “u”) ‬‬ ‫د ‪ ‬‬ ‫ر‬ ‫ز ر‬

‫‪"word1, word2”.split(“,”) ‬‬ ‫(‪ ‬‬ ‫ص)‬ ‫در را‬ ‫ر‬

‫‪"string 1” + “string 2”  ‬‬ ‫‪ ‬‬ ‫ن دو ر‬

‫‪len(a) ‬‬ ‫لر ‪ ‬‬

‫‪a.strip() ‬‬ ‫ر ‪ ‬‬ ‫درون‪ ،‬ا ا ‪ ،‬و ا‬ ‫یا‬ ‫ف‬

‫‪b = list(a) ‬‬ ‫‪ ‬‬ ‫را‬ ‫)‬ ‫ر‬


‫د(‪ ‬‬

‫‪a[i] ‬‬ ‫‪i‬ام ر ‪ ‬‬ ‫را‬ ‫د‬

‫‪a[start: end] ‬‬ ‫‪ end start‬‬ ‫از ا‬ ‫ز ر‬

‫‪str1 == sta2 ‬‬ ‫دو ر ‪ ‬‬


‫‪str1>=str2 ‬‬
‫‪str1<=str2 ‬‬
‫‪... ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫م ا ار را‬ ‫ی‬ ‫‪۲.۵‬‬

‫‪ ‬‬ ‫‪ .‬ا ‪ ‬او ‪ ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪    ‬م‪ ‬ا ار ‪ ‬را‪ ‬در‪ ‬‬ ‫‪   ‬دو‪ ‬ر ‪    ‬ن‪ ‬د ه‪ ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ :‬‬
‫دا ‪ .‬‬ ‫وی دن ‪ 0‬را‬ ‫رت‬ ‫ار ‪ ،-1‬و در‬ ‫دو‬ ‫ار ‪،1‬‬ ‫ی‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬د ‪ ‬آن‪ "1.02.1" ‬‬ ‫‪  ‬م‪ ‬ا اری‪ "1.02" ‬و‪ ‬‬ ‫(‪ .‬ا ‪   ‬‬ ‫‪  ​) ‬‬ ‫‪  :‬ر‪ ‬را‪      ‬ل‪  ‬وع‪ ‬‬
‫‪ "1.02" ‬ا ‪ ‬و‪ ‬‬ ‫ط‪   ‬و ا ‪ ‬اول‪ ‬از‪ ‬‬ ‫‪  (".1" ‬ن‪   ‬د ‪   ‬ورژن‪ "1.02.1" ‬‬ ‫‪ ‬آ ‪ ‬ر ‪ ‬دوم‪) ‬‬ ‫ا ٓ ه‪ ‬‬
‫‪ ‬ا ‪      ‬ار‪ -1 ‬را‪  ‬دا ‪ .‬ا ‪ ‬‬ ‫‪ ‬و‪ "1.02.1" ‬ورودی‪ ‬دوم‪ ‬‬ ‫‪ ‬ا ‪ "1.02" ‬ورودی‪ ‬اول‪ ‬ا ‪ ‬‬ ‫‪ ‬ا ‪ .‬‬
‫ی‪  ‬ارد‪ .‬ا ‪ ‬‬ ‫‪ (02 ‬در‪  ‬ار‪  ‬دی‪ ‬ورژن‪ ‬‬ ‫‪ ‬دوم‪) ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ -1 ‬ا ‪ ‬ز ا‪ ‬‬ ‫‪  ‬ز‪   ‬‬ ‫ر ‪ ‬او ‪ "1.2" ‬‬
‫‪ .‬‬ ‫در وا ا دو ورژن‬ ‫"‪"1.02.0‬‬ ‫دو‬ ‫ر‬
‫‪ ‬‬
‫‪ ‬را‪  ‬ای‪ ‬ا ‪  ‬ال‪ ‬‬ ‫‪ ‬‬ ‫‪ (> , < ,== ‬‬ ‫‪ ‬ای‪) ‬‬ ‫ی‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬ا ‪   ‬ا‬ ‫‪    ‬ل‪  ‬ی‪   ‬وا‬ ‫‪ ‬‬
‫ا اد راه (‪  .‬‬ ‫)‬ ‫را در‬ ‫در‬ ‫‪0‬‬ ‫ی‬ ‫ای‬ ‫ر‬ ‫د ‪،‬ز ا‬
‫‪ ‬‬
‫‪   ‬را‪​) ‬ارا ‪ ‬راه‪ ‬‬ ‫‪    ‬د‪ ‬ر‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬دو‪ ‬ر ‪ ‬را‪     ‬‬ ‫‪  ‬ی‪ ‬‬ ‫ا ‪   ‬راه‪   ‬در ‪    ‬د ‪  ‬دی‪ ‬‬
‫‪ ‬و‪ ‬ر ‪" ‬‬ ‫‪ [1 ,2] ‬در‪   ‬‬ ‫‪ ‬از‪  ‬د ‪ ‬‬ ‫‪    .(  ‬ان‪  ‬ل‪ ،‬ر ‪ "1.2" ‬را‪    ‬ا ‪    ‬رت‪ ‬‬
‫‪   ‬از‪     ‬را ‪ ‬او ‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬‬ ‫‪ [1 ,2 ,1] ‬در‪   ‬دا ‪ ‬‬ ‫‪ ‬از‪  ‬د ‪ ‬‬ ‫‪ "1.02.1‬را‪    ‬رت‪   ‬‬
‫‪  ‬و ‪  ‬ا ‪ ‬‬ ‫‪        ‬ام‪    ‬ر ‪ ‬ا ‪ .‬در‪  ‬ر ‪   ‬دو‪ ‬‬ ‫‪ ‬‬ ‫‪      ‬وت‪ ‬‬ ‫‪ ‬ای‪   ‬دو‪ ‬‬
‫ا ‪ .‬‬ ‫م ا ار‬ ‫دو‬ ‫ا‬ ‫ا‬
‫‪ ‬‬
‫ه‪ ‬‬ ‫‪ ‬‬ ‫ن‪    ‬رد‪ ‬را‪  ‬ای‪ ‬‬ ‫‪   ‬در‪ ‬ذ‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ن‪   ‬‬ ‫‪ ‬و‪ ‬‬ ‫وع‪    ‬ده‪  ‬زی‪ ‬ا ر ‪   ‬‬
‫‪ .‬ا ‪    ‬ز‪   ‬دو‪  ‬را ‪  ‬ای‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫(‪       >>   .‬را‬ ‫ن‪ ‬را‪ ‬داد‪ ‬‬ ‫‪ ‬د ‪​) ‬‬
‫‪ 2  ) ‬و‪ .(3 ‬ا ‪ ‬‬ ‫ی‪   ‬ورژن‪ ‬را‪ ‬‬ ‫ده‪       ‬‬ ‫‪ ‬از‪ split   ‬ا‬ ‫‪ ‬ورژ ی‪ ‬ورودی‪ ‬دارد‪ .(1  ) ‬‬
‫‪ <<.‬‬ ‫)‪(None‬‬ ‫‪version1‬‬ ‫ار را‬ ‫آ‬ ‫ر‬ ‫ا‬ ‫ا‬ ‫ا‬
‫‪  ‬‬
‫ی‪ ‬‬ ‫‪   ‬ا ‪  ‬ط‪ ‬را‪  ‬ر ‪ .  ‬ا ‪  ‬ال‪    ‬ن‪   ‬د ‪     ‬‬ ‫‪   ‬آ ‪  ‬زم‪ ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ‬از‪ ‬‬
‫‪  .‬ر ‪ ‬ا ‪ ‬‬ ‫‪  ‬رد‪     ‬را‪  ‬ا ‪ ‬‬ ‫‪ ‬ا ‪ ‬ورودی‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪ ‬وا‬ ‫ورودی‪ ‬در‪   ‬‬
‫‪ ‬ا ‪  ‬ط‪ ‬را‪ ‬‬ ‫‪  ‬ه‪ ‬و‪     ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬ا‬ ‫‪ .  ‬در‪ ‬ا‬ ‫د‪       ‬آن‪ ‬را‪ ‬ا‬ ‫‪  ‬ده‪ ‬ا ‪ ‬و‪ ‬‬ ‫‪ ‬‬
‫ورده ا ‪  .‬‬
‫‪ ‬‬
‫ده‪     ‬‬ ‫‪  .  ‬ای‪ ‬ا ‪  ‬ر‪ ‬از‪  map   ‬ا‬ ‫‪ ‬‬ ‫ی‪ ‬ورژن‪ ‬را‪ ‬در‪ ‬آورد ‪   ‬آ ‪ ‬را‪    ‬د‪ ‬‬ ‫>> ‪ ‬از‪ ‬آ ‪ ‬‬
‫‪ .(2  )     ‬ا ‪  ‬ر‪ ‬را‪  ‬ای‪ ‬ر ‪ ‬دوم‪   ‬‬ ‫‪ ‬‬ ‫(‪ ‬را‪    ‬د‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬در‪ ‬وا ‪      ‬د ‪ ‬‬
‫‪  <<.(3‬‬ ‫)‬ ‫د‬ ‫ا م‬
‫‪ ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪    ‬اغ‪     ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪  .‬ای‪ ‬ا ‪  ‬ر‪  ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪     ‬‬ ‫‪   ‬دو‪ ‬‬
‫‪ ‬را‪   ‬دا ‪   (۲)   ،‬‬ ‫‪   ‬در‪ ‬ا ‪  ‬رت‪ ‬‬ ‫‪  ‬ه‪ ‬از‪ ‬د ی‪  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪  ‬د ‪ ‬‬ ‫‪ (۱)   ‬‬ ‫رود‪   ‬‬
‫‪ .‬‬ ‫ی‪  ‬ر‪      ‬وی‪   ‬‬ ‫‪   ‬ا‬ ‫‪      ‬د ‪ ‬دو‪ ‬‬ ‫‪ ‬دوم‪   ‬ا ‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ی‪ ‬‬
‫‪ ‬ر ‪ ‬‬ ‫‪  ‬ر ‪ ‬را‪    ‬ان‪ ‬‬ ‫‪    ‬‬ ‫‪   ‬را‪     ‬‬ ‫‪   ‬ا ازه‪ ‬‬ ‫‪     ‬از‪  ‬وج‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪   .‬ا ‪ ‬د ‪   ‬‬ ‫‪   ‬ا ا ‪  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ص‪   ‬ا ‪ ‬را‪ ‬در‪   ‬‬ ‫‪ ‬ا ‪ ‬در‪  ‬رد‪ ‬ا ‪ ‬‬ ‫ا م‪ ‬‬
‫‪   ‬ر ‪  ‬ی‪ "1.2" ‬و‪ "1.2.0" ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬
‫‪   ‬ا ‪   ،‬‬ ‫‪ ‬دوم‪ ‬‬ ‫‪      ‬ا ‪ ‬و‪ ‬‬ ‫‪ 1 ‬ا ‪ ‬دو‪ ‬‬ ‫‪ ‬ا‬ ‫‪  ‬‬ ‫ر ‪ ‬از‪ [1 ,2] ‬و‪   .[1 ,2 ,0] ‬و د‪ ‬ا‬
‫ا ‪ ‬دو‪ ‬‬ ‫‪  ‬م‪ ‬ا ار‪ ‬ا د‪ .    ‬‬ ‫‪ ‬ا ‪  ،‬و ‪ ‬را‪ ‬در‪ ‬‬ ‫‪ ‬دوم‪ ‬‬ ‫‪     1 ‬در‪ ‬‬ ‫ا ‪ ‬د ‪    ‬د ‪ ‬از‪ ‬ا‬
‫ا ‪  .‬‬
‫‪ ‬‬
‫‪   ‬را‪ ‬‬ ‫‪ .‬ا ‪  ‬ر‪ ‬‬ ‫‪   ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آ ‪   ‬‬ ‫‪ ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫ای‪ ‬ا‬
‫‪  .‬‬ ‫ا‬ ‫و‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬را‪ ‬ا ا‪ ‬‬ ‫‪ ‬دو‪ ‬‬ ‫ده‪ :    ‬در‪ ‬ا ‪ ‬‬ ‫‪  ‬ب‪ ‬ا‬ ‫‪ ،‬از‪   ‬‬ ‫‪  ‬ص‪ ‬‬ ‫‪ ‬از‪  ‬ر ‪  ‬ط‪  ‬ی‪ ‬ا‬ ‫ای‪ ‬ا‬
‫‪ ‬‬ ‫‪ .    ‬‬ ‫‪ ‬را‪ ‬‬ ‫ا ‪ ‬در‪ 5   ‬ا ا‪  ‬وت‪  ‬ل‪ ‬در‪ ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫‪ ‬آ ‪ ‬را‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬ا ازه‪   ‬‬
‫ط‪ 6 ‬و‪ .(7 ‬در‪ ‬ا ‪ ‬دو‪ ‬‬ ‫‪)     ‬‬ ‫‪   ‬ا ‪ ‬ر ‪   ‬ا‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫ن‪   ‬را‬ ‫ت‪ ‬ز ن‪ ‬‬ ‫ده‪ ‬از‪ ‬ا‬ ‫‪ ‬ا‬
‫‪ ‬‬ ‫‪  ‬ار‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫ط‪ 9 ‬و‪ (11 ‬و‪  ‬زی‪   ‬‬ ‫‪) ‬‬ ‫‪   ‬‬ ‫‪ ‬ای‪ ‬‬ ‫ی‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬را‪ ‬‬
‫دا ‪ .‬‬ ‫را‬ ‫در‬ ‫دا ‪.‬‬ ‫ا‬
‫‪ ‬‬

‫‪1.​ def​ compareVersion(version1, version2):‬‬


2. v1 = ​map​(​int​, version1.split("."))
3. v2 = m​ ap​(​int​, version2.split("."))
4.
5. d = ​len​(v1)​-len​(v2)
6. v1 += [0] * (-d)
7. v2 += [0] * (d)
8.
9. if v1 == v2:
10. return 0
11. return 1 if v1 > v2 else -1
 
 
      ‫ا‬    ‫ا‬ O(1)     ‫دارای‬    ‫ا‬   ‫ر‬     ‫ا‬ ‫آن‬  ‫را‬ ‫ه‬ ‫ا‬   ​ :    
   ‫را‬     ‫ز ن‬ ‫در‬ ‫ ه‬     ‫از‬ ‫و‬ ‫د‬   ‫ ا‬      ‫ا‬ .‫ ارد‬ ‫و د‬ ‫ای‬  ‫ز‬  ‫ ا ا‬    
   ‫دارای‬       ‫ده‬ ‫ا‬       ‫و‬ split، map ‫از‬     .    ‫ د‬     ‫و‬
 . O(n) ‫ا ا ر‬ ‫ا‬ . ‫ا‬ ‫ع ل دو ر‬ n ‫در آن‬ ‫ ا‬O(n)
‫‪ ‬‬ ‫ت را‬ ‫‪۲.۵‬‬

‫‪ .‬‬ ‫را‬ ‫ر‬ ‫ت درون‬ ‫ای‬ ‫‪:‬‬


‫‪ ‬‬
‫‪    ‬ار‪ "world Hello" ‬را‪ ‬‬ ‫‪ ‬آ ه‪ ‬‬ ‫‪  :‬ر‪ ‬را‪      ‬ل‪  ‬وع‪ .    ‬ا ‪ ‬ر ‪ ‬ورودی‪ "Hello world" ‬‬
‫دا ‪ .‬‬
‫‪  ‬‬
‫‪ ‬آ ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ت‪  ‬ا ‪ ‬درون‪ ‬ر ‪  ‬ز ‪ ‬و‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪   ‬ا ‪   ‬‬ ‫‪   ‬‬ ‫‪  ‬دن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪    ‬ا ‪ ‬ر ‪  ‬رد‪   ‬را‪  ‬ز ‪ .‬‬ ‫ت‪ ‬درون‪ ‬‬ ‫‪  ‬دن‪ ‬‬ ‫‪   ‬آ ‪   .‬و‬ ‫‪ ‬‬ ‫ت‪ ‬در‪ ‬‬ ‫ب‪ ‬‬ ‫‪ ‬‬
‫د ‪ .‬‬ ‫ر را ا م‬ ‫ز ا‬

‫‪1.​ def​ reverseWords(s):‬‬


‫‪2.‬‬ ‫)))(‪" ".join(reversed(s.split‬‬

‫‪ ‬‬
‫‪   ‬داده‪ ‬‬ ‫‪   .‬د ل‪  ‬دن‪ ‬‬ ‫‪ ‬‬ ‫‪ "Hello‬را‪ ‬روی‪ ‬‬ ‫ا ‪   ‬ر ‪ ‬ورودی‪ World" ‬‬ ‫ه‪ ‬از‪   ‬‬ ‫‪ ‬‬ ‫ا ‪ ‬‬
‫‪ ‬از‪   ‬ر ‪ ‬‬ ‫‪   ‬دو‪ ‬‬ ‫‪  ‬را ‪ ‬‬ ‫‪ ‬ز ا‪ ‬‬ ‫ب‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬د‪   ‬‬ ‫ورودی‪  ،‬و "‪ "World Hello‬‬
‫‪ ‬‬ ‫‪ ‬د‬ ‫‪   ‬را‪ ‬در‪ ‬‬ ‫‪ ‬و ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ا ‪ .‬ا ‪ ‬ا ق‪   ‬د ‪  ‬ه‪  ‬ر‪ split   ‬رخ‪   ‬د ‪   ‬ر ‪ ‬را‪ ‬از‪ ‬‬
‫‪  .‬‬
‫‪ ‬‬
‫‪   ‬را‪ ‬‬ ‫ف‪ ،split ‬‬ ‫‪   ‬‬ ‫ده‪ ‬‬ ‫ت‪ ‬ا‬ ‫‪   ‬از‪ ‬رو ‪  ‬ای‪  ‬ا‪  ‬دن‪ ‬‬ ‫‪ ‬‬ ‫ا ‪  ‬ا ‪ ‬ا ‪ ‬ا ر ‪ ‬را‪ ‬‬
‫‪ ‬‬ ‫ده‪ ‬از‪ split   ‬درون‪ ‬‬ ‫‪ ‬راه‪    ‬ای‪ ‬ا ‪  ‬ر‪ ‬و د‪ ‬دارد‪ ‬و‪ ‬آن‪ ‬ا‬ ‫ر‪  ‬ارد‪ .‬‬ ‫‪  ‬و ‪ ‬در‪ ‬ا‬ ‫‪ ‬در‪ ‬‬
‫‪  ‬ی‪   ‬‬ ‫‪ ‬ا ‪ .‬ا ‪ ‬روش‪   ‬ازای‪   ‬‬ ‫ه‪  (regular expression) ‬ای‪  ‬ا‪  ‬دن‪ ‬ر ‪ ‬در‪  ‬ط‪ ‬‬ ‫رات‪   ‬‬
‫ه‪ ‬را‪  ‬ا ‪ ‬ا ‪ ‬‬ ‫ده‪ ‬از‪  ‬رات‪   ‬‬ ‫‪  ‬ه‪ ‬ا‬ ‫‪ ‬ا ‪ ‬در‪ ‬ز ن‪ ‬‬ ‫‪ ‬ا د‪ .    ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫ر ‪ ‬‬
‫‪  ‬ز‪ ‬دار ‪ ‬و‪ ‬‬ ‫ه‪  ‬ن‪ ‬د ه‪ ‬آن‪ ‬ا ‪     ‬ذ‬ ‫‪ ‬‬ ‫‪  ،‬ای‪ ‬‬ ‫‪ ‬ا ‪  ‬ا ‪ ‬آن‪ ‬را‪  ‬ده‪ ‬‬ ‫‪، ‬‬ ‫ح‪  ‬دن‪ ‬ا ‪ ‬‬
‫ب ا ‪ .‬‬ ‫ت‬ ‫از‬ ‫‪.‬ا‬ ‫را در‬ ‫ای‬ ‫ی‬
‫‪ ‬‬
‫‪ .‬‬ ‫ز را ده‬ ‫اب در‬ ‫ا‬ ‫ه دا‬ ‫رات‬ ‫ای‬ ‫رذ‬ ‫ا‬
‫‪ ‬‬
‫‪1. ​import​ re‬‬
‫‪​ ef​ reverseWords(s):‬‬
‫‪2. d‬‬
‫)))‪3. " ".join(reversed(re.split('\s', s‬‬

‫‪ ‬‬
‫‪ ‬‬
‫‪   ،‬‬ ‫ده‪ ‬‬ ‫ه‪ ‬از‪    ‬ا ‪   ‬از‪ ‬ا ‪ ‬ا ن‪ ‬ا‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫ن‪ ‬‬ ‫ه‪   ‬ذ‬ ‫ده‪ ‬از‪  ‬رت‪   ‬‬ ‫ا ‪ ‬ا ‪ ‬ا ه‪ ‬ا‬
‫‪  .‬‬ ‫را روش د ی‬ ‫و‬ ‫ا هد‬
‫‪ ‬‬
‫‪  ‬ه‪ ‬‬ ‫‪   ‬ر ‪ ‬اول‪ ‬‬ ‫‪   ‬‬ ‫‪    ‬و ‪ ‬در‪ ‬وا ‪  ‬دل‪   ‬ر ‪ ‬ا‬ ‫‪   ‬‬ ‫‪ ‬د ‪ ‬در‪ ‬ورودی‪ ‬و‪  ‬و ‪  ‬ل‪ ‬‬
‫‪ "dlroW‬‬ ‫‪   "Hello‬ر ‪ olleH" ‬‬ ‫‪  ‬دن‪ ‬ر ‪ World" ‬‬ ‫‪  ‬ه‪ ‬ا ‪     .‬‬ ‫‪     ‬از‪ ‬آن‪ ‬‬ ‫و‪   ‬‬
‫‪   .‬ا ‪ ‬‬ ‫‪ "World Hello" ‬د ‪  ‬ا ‪ ‬‬ ‫ت‪ ‬در‪  ‬ی‪  ‬د‪   ‬ر ‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪  ‬دن‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬ر ‪ .‬‬
‫‪  .‬‬ ‫ر‬ ‫ا ر در‬
‫‪ ‬‬
‫‪ ‬ا ر ‪ ‬ا م‪    ‬د‪   .‬‬ ‫‪ ‬ا ‪   ‬در‪   ‬دو‪ ‬‬ ‫‪  ‬دن‪ ‬ر ‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬
‫‪   ‬‬ ‫‪  ‬دن‪ ‬را‪ ‬روی‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ‬‬ ‫‪  .  ‬ای‪ ‬ا‬ ‫‪    ‬ا ‪   ‬ر ‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ا ‪ ‬در‪   ‬‬
‫‪ ‬‬ ‫‪  ‬ی‪ ‬داده‪  ‬ه‪ ‬از‪   ‬ر ‪ ‬را‪ ‬در‪ ‬‬ ‫‪    ‬ا ‪   ‬ز ‪ ‬ر ‪ ‬د اه‪   ‬ا‬ ‫‪ ‬ا م‪ ‬د ‪     ‬را‪    ‬ر ‪ ‬‬
‫‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪  ‬ای‪ ‬‬ ‫ط‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫ر‪   ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬وع‪   ‬‬ ‫‪ ‬ا ‪ ‬ذ‬
‫‪ .‬ا ‪     ‬ر ‪ ‬را‪    ‬ان‪ ‬ورودی‪    ‬د‪ .‬در‪ ‬ادا ‪ ‬ا ا‪ ‬ر ‪ ‬را‪ ‬‬ ‫‪  ‬ای‪   ‬در‪   ‬‬ ‫‪ ‬د ‪ .‬ا ا‪  ‬م‪ ‬‬
‫ن‪ ‬‬ ‫ن‪ ‬ر ‪   ‬‬ ‫‪ .(2  ) ‬ا ‪  ‬ر‪ ‬را‪   ‬ا ‪ ‬د ‪ ‬ا م‪   ‬د ‪   ‬در‪ ‬ز ن‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬از‪  ‬را ‪   ‬‬ ‫‪ ‬‬
‫‪ ‬را‪   ‬‬ ‫‪   ‬و‪ ‬را ‪   ‬ز ‪ ‬‬ ‫‪   ‬ا‬ ‫‪   ‬‬ ‫‪ .‬در‪ ‬ادا ‪     ‬‬ ‫‪   (immutable) ‬‬ ‫‪ ‬‬ ‫داده‪ ‬‬
‫‪  ‬دن‪   ‬ر ‪ (9  ) ‬‬ ‫ط‪ .(7   4 ‬از‪ ‬ا ‪      ‬ای‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬آن‪  ‬زه‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫د‪ ‬و‪   ‬‬
‫‪       ‬ر ‪ ‬‬ ‫‪ ‬را‪     ‬‬ ‫ی‪ ‬‬ ‫ده‪ .    ‬در‪ ‬ا ‪  ‬را‬ ‫ط‪ (15   10 ‬ا‬ ‫ت‪) ‬‬ ‫‪  ‬دن‪ ‬‬ ‫و‪   ‬‬
‫ز ‪ .‬‬ ‫را‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪1.​ def​ reverseWords(s):‬‬
2. c = list(s)
3.
4. ​def​ inverse_helper(left, right):
5. ​while​ (left<right):
6. c[left], c[right] = c[right], c[left]
7. left, right = left+1, right-1
8.
9. inverse_helper(0, len(s)-1)
10. p = 0
11. ​for​ i ​in​ range(len(s)):
12. ​if​ c[i] == ' ':
13. inverse_helper(p, i-1)
14. p = i+1
15. inverse_helper(p, len(s)-1)
16. return "".join(c)
 

 
 ‫ ر‬   ‫را‬  ‫ر‬ ‫درون‬ ‫ت‬    ‫و‬       ‫را‬ ‫آن‬       ‫را‬  ‫ر‬ ‫ر‬       ‫ا‬ :    
   . O(n) ‫ا ا ر‬ ‫ا‬ . ٓ‫ا‬
‫؟‪ ‬‬ ‫ا‬ ‫‪ ۳.۵‬آ‬

‫‪    ‬‬ ‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫‪   ‬آ ‪  ‬ا‬ ‫‪   ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ ‬داده‪  ‬ه‪ ‬ا ‪ .‬‬ ‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫‪   :‬ر ‪ ‬از‪  ‬ا‬
‫‪ .‬‬
‫‪ ‬‬
‫‪ ‬درک‪  ‬ده‪ ‬ا ‪.‬در‪ ‬ر ‪    "(()" ‬اد‪ ‬‬ ‫‪ ‬آن‪ ‬را‪  ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬را‪      ‬ل‪  ‬وع‪   ‬‬ ‫‪   :‬‬
‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫‪ .‬در‪ ‬ر ‪  ")(()" ‬اد‪  ‬ا‬ ‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫ق‪ ‬دو وی‪  ‬ا‬ ‫‪   ‬ا‬ ‫‪   ،‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫ا‬
‫‪   ‬‬ ‫‪      ‬ا ‪  ‬ز‪ ‬‬ ‫‪ ‬‬ ‫‪    .‬ان‪  ‬ل‪  ‬ا ‪ ‬او ‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫ن‪  ‬ا‬ ‫‪ ‬ا ‪ ‬ا ‪ ‬‬ ‫‪ ‬‬
‫‪   ‬‬ ‫‪    ‬‬ ‫‪ ،‬در‪ ‬ر ‪  ‬ی‪ "()(())" ‬و‪  "(((()))())" ‬ا ‪  ‬ی‪  ‬ز‪ ‬و‪ ‬‬ ‫‪    .‬ان‪  ‬ل‪  ‬ی‪ ‬‬ ‫آن‪ ‬‬
‫‪  .‬‬
‫‪ ‬‬
‫‪     ‬ا ر ‪  ‬ده‪ ‬‬ ‫‪ ‬ا ‪  ‬ی‪ ‬آن‪  ‬ش‪   ‬‬ ‫‪  ‬ارد‪ .‬‬ ‫م‪ ‬رو‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫در‪  ‬رد‪ ‬ا ‪ ‬‬
‫‪ ‬آن‪ ‬ا ‪ ‬‬ ‫‪ ‬ذا ‪    ‬ا ‪  ‬ی‪ ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫‪ ‬ذا ‪   ‬ر ‪  ‬ا ‪-‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ارا ‪ ‬‬
‫‪ ‬ا ‪   ‬زوج‪ ‬‬ ‫‪ ‬دارد‪ .‬‬ ‫ی‪ ‬‬ ‫ه‪    ‬ا‬ ‫‪ ‬آ ه‪ ‬ر ‪ ‬‬ ‫‪ ('()' ‬آن‪ ‬را‪  ‬ف‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬ا ‪   ‬زوج‪ ‬‬
‫‪  ‬ا ‪  ‬د‪     .‬‬ ‫ه‪ ‬‬ ‫ی‪ ‬ر ‪ ‬‬ ‫‪ ‬را‪  ‬ف‪ ،  ‬آ ه‪  ‬ا‬ ‫‪ ('()' ‬در‪   ‬ر ‪ ‬‬ ‫‪) ‬‬ ‫ا ‪  ‬ز‪ ‬و‪ ‬‬
‫‪ ‬ا ‪  .‬ا ‪ ‬‬ ‫ن‪   ‬ر ‪ ‬‬ ‫‪  ‬ا ‪ ‬ر ‪   "())(()" ‬ر ‪   ")(()" ‬ر ‪   ‬‬ ‫‪  ‬ر‪  ‬ف‪   ‬زوج‪ ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪    ‬ر ‪ .‬ا ‪  ‬اد‪ ‬آ ‪  ‬وت‪ ‬‬ ‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫‪ ‬ا ا‪  ‬اد‪  ‬ا‬ ‫‪   ‬ا ‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬
‫‪ ،‬در‪  ‬م‪      ‬ر‪   ‬ز ‪ ‬ر ‪ "()" ‬را‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫ی‪  ‬ز‪ ‬و‪ ‬‬ ‫‪ ‬ا ‪ .‬در‪  ‬ر ‪    ‬اد‪  ‬ا‬ ‫‪ ‬‬ ‫‪   ‬ا‬
‫(‪ (۲) ،  ‬د ‪ ‬ز ‪ ‬ر ‪ "()" ‬‬ ‫‪ (۱)   ‬ر ‪  ‬م‪  ‬د‪ ) ‬ای‪ ‬ر ‪ ‬‬ ‫از‪ ‬دا ‪ ‬ر ‪  ‬ف‪     ‬و‪ ‬ا ‪  ‬ر‪ ‬را‪   ‬ز‬
‫‪ ‬‬ ‫‪   O(n^2) ‬‬ ‫‪ ‬‬ ‫‪ ‬دارای‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬ا ر ‪ ‬در‪ ‬‬ ‫(‪  ‬ار‪   ‬‬ ‫ا‪  ‬د‪) ‬در‪ ‬ر ‪ ‬‬
‫‪    ‬ا ‪ ‬ا ر ‪ ‬را‪ ‬‬ ‫‪ .‬در‪ ‬ا ‪ ‬‬ ‫‪ ‬از‪ ‬ا ا‪   ‬و ‪ ‬ر ‪ ‬را‪ ‬‬ ‫‪   ‬ز ‪ ‬ر ‪    "()" ‬ر‪ ‬‬ ‫ز ا‪  ‬ای‪ ‬‬
‫‪ .‬‬ ‫ر‬ ‫در‬ ‫ه‬ ‫ی داده‬ ‫روی‬
‫‪ ‬‬
‫‪  ‬ی‪ ‬ا ‪ ‬ا ر ‪ ‬آن‪ ‬ا ‪    ‬ر ی‪  ‬اری‪ ‬ا م‪   ‬د ‪   .‬‬ ‫‪ ‬و د‪ ‬ا ‪   ‬ا ر ‪ ‬در ‪ ‬ا ‪ ‬ا ‪   ‬ا ‪ .‬‬
‫‪  .‬ای‪ ‬ر ‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ر‪ ‬از‪ ‬ا ای‪ ‬ر ‪ ‬دو ره‪  ‬وع‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪  ‬ا‪  ‬دن‪ ‬زوج‪  ‬ا ‪  ‬ز‪ ‬و‪ ‬‬ ‫ص‪ ‬ا‬
‫‪  .‬ای‪ ‬ا ‪  ‬ر‪ ‬از‪ ‬ا ای‪ ‬‬ ‫د‪ ‬از‪ ‬ا ای‪ ‬ر ‪ ‬‬ ‫ی‪ ‬‬ ‫ر‪   ‬‬ ‫‪ ‬ای‪      ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ر ‪ ‬را‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ Y ‬در‪ ‬ر ‪  ‬ا‬ ‫‪ (")" ‬را‪ ‬در‪ ‬ا‬ ‫‪) ‬‬ ‫‪   ‬او ‪  ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫ر ‪  ‬وع‪   ‬‬
‫‪ ‬‬ ‫‪ X ‬و‪ Y ‬زوج‪ ‬‬ ‫ی‪ ‬در‪ ‬‬ ‫‪   .‬ا ‪ ‬د ‪    ‬ا‬ ‫‪ X ‬‬ ‫‪   ("(" ‬آن‪ ‬را‪ ‬در‪ ‬‬ ‫‪     ‬او ‪  ‬ا ‪  ‬ز‪) ‬‬
‫‪  ) ‬از‪  ‬ا ‪ ‬‬ ‫ی‪ ‬ا‬ ‫‪   ‬آ ‪ ‬را‪ ‬از‪ ‬ر ‪  ‬ف‪        ‬ی‪ ‬آ ‪ ‬را‪    ‬را‬ ‫‪ ‬د ‪  ‬ری‪   ‬آ ‪  ‬ار ‪ .‬در‪ ‬‬
‫‪  .‬‬ ‫ر ا‬ ‫آ‬ ‫د ت‬ ‫*(‬
‫‪ ‬‬
‫‪  ‬دن‪   ‬‬ ‫‪  (")" ‬ی‪ ‬ادا ‪   ‬د ‪ .‬و‪ ‬ا ‪  ‬ر‪ ‬را‪   ‬‬ ‫‪) ‬‬ ‫ی‪  ‬ا ‪ ‬‬ ‫‪  Y+1 ‬ر‪ ‬را‪  ‬ای‪ ‬‬ ‫‪ ‬از‪ ‬ا‬
‫‪ ‬ر ‪ ‬را‪   ‬‬ ‫ر‪    ‬رت‪ ‬‬ ‫‪     ‬‬ ‫ی‪ ‬‬ ‫‪  ‬ا‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬و‪  ‬ز‪ ‬ا م‪   ‬د ‪   .‬ا ‪ ‬‬ ‫ی‪ ‬‬ ‫ا‬
‫‪ Y ‬را‪   ‬ا ای‪ ‬ر ‪  ‬ر ‪ .  ‬‬ ‫‪   ‬ا‬ ‫ی‪ ‬‬ ‫‪    ‬ر‪  ‬را‬ ‫‪ ‬‬ ‫ی‪  ‬ز‪ ‬در‪ ‬‬ ‫‪  ‬ا‬ ‫‪  .‬ای‪ ‬‬
‫د‪ .‬‬ ‫ن ) ‪ O(n2‬ا‬ ‫ا ا ر‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬در‪ ‬‬ ‫‪     ‬ا ‪ ‬‬ ‫ده‪  ‬ه‪ ‬ای‪ ‬ا ‪   ‬‬ ‫‪ ("(" ‬ا‬ ‫‪  ‬ا ‪  ‬ز‪) ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ر ‪  ‬ق‪  ‬ن‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪  ‬ا ‪  ‬ز‪ ‬دار ‪   ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ،‬آ ‪ ‬وا ‪  ‬ز‪   ‬‬ ‫‪    ‬رت‪ ‬‬ ‫‪ Y ‬ا ‪ .‬ا ‪   ‬‬
‫‪  ‬ز‪    ‬دا ن‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪   ‬در‪ ‬ا ‪ ‬‬ ‫‪ Y   ‬و د‪ ‬دارد؟‪ ‬‬ ‫ده‪  ‬ه‪ ‬در‪ ‬‬ ‫‪      ‬ا ‪  ‬ز‪ ‬ا‬ ‫‪ ‬‬
‫‪ Y   ‬‬ ‫ده‪  ‬ه‪ ‬در‪ ‬‬ ‫‪      ‬ا ‪  ‬ز‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪  ‬ار ‪ ‬و‪ ‬‬ ‫‪ ‬زوج‪  ‬ا ‪  ‬ی‪ ‬‬
‫‪ .‬‬ ‫ز‬ ‫د‬ ‫ا ر‬ ‫راه را ای‬ ‫آن را ا ‪ .‬ا‬ ‫زم ار ا‬ ‫ا‬
‫‪ ‬‬
‫‪ Y ‬و د‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪     ‬ا ‪ ‬‬ ‫‪  ‬ه‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪  ‬ا ‪   ‬آ ‪  ‬ا ‪    ‬ا ‪ ‬‬ ‫ا ‪   ‬‬
‫‪ ‬‬ ‫‪   ‬آن‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪    ،1 ‬ا ‪  ‬ز‪ ‬‬ ‫‪ ‬در‪ ‬ا‬ ‫دارد؟‪    ‬ان‪  ‬ل‪ ‬در‪ ‬ر ‪   "())(()" ‬ر ن‪   ‬او ‪  ‬ا ‪ ‬‬
‫‪  ‬ا ‪  ‬ز‪ ‬‬ ‫‪ 2 ‬در‪ ‬ر (‪  ‬و ‪ .‬در‪ ‬ا ‪  ‬رت‪  ‬اد‪ ‬‬ ‫‪ ‬ا‬ ‫‪  ‬ی‪) ‬‬ ‫‪    ‬اغ‪  ‬ا ‪ ‬‬ ‫‪ ‬و د‪ ‬دارد‪ .‬در‪ ‬‬
‫‪ ‬‬ ‫‪ 2 ‬و د‪  ‬ارد‪ ‬و‪ ‬در‪ ‬‬ ‫‪ ‬در‪ ‬ا‬ ‫‪  ‬ای‪  ‬ا ‪ ‬‬ ‫‪ ‬ا ‪ ‬زو ‪ ‬‬ ‫‪   ‬آن‪ ‬و د‪ ‬دارد‪ .‬‬ ‫ه‪ ‬در‪ ‬‬ ‫ده‪ ‬‬ ‫ا‬
‫‪  .‬‬ ‫ر‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬‬ ‫ه‪    ‬ا ‪ ‬‬ ‫‪ Y ‬را‪  ‬ا ‪ .‬‬ ‫‪   ‬‬ ‫ده‪  ‬ه‪ ‬در‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬ا ‪    ‬اد‪  ‬ا ‪  ‬ی‪ ‬‬ ‫ا ‪    ‬ر ه‪ ‬‬
‫ه‪    ‬ا ‪  ‬ز‪ ‬‬ ‫‪   .‬‬ ‫‪   ‬وا ‪ ‬از‪  ‬ار‪  ‬ر ه‪   ‬‬ ‫ده‪     ‬و‪ ‬در‪ ‬‬ ‫ه‪        ‬ا ‪  ‬ز‪ ‬را‪ ‬ا‬
‫‪  ،Y ‬ار‪ ‬ا ‪ ‬‬ ‫‪ ‬در‪ ‬ا‬ ‫ه‪  ‬ا ‪ ‬‬ ‫‪ ‬روی‪ ‬ر ‪   ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬در‪ ‬‬ ‫‪   ‬‬ ‫ر ه‪  ‬ا‬ ‫‪ ‬وا ‪   ‬ا ‪ ‬‬
‫‪ ‬روی‪ ‬ر ‪  ‬م‪  ‬د‪ ‬و‪ ‬در‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫ی‪ ‬ر ‪ ‬‬ ‫‪    ‬ا‬ ‫‪ ‬‬ ‫‪   ،‬ا ٓ ه‪ ‬‬ ‫‪ ‬‬ ‫ر ه‪ ‬‬
‫‪ ‬‬ ‫‪ ‬و‪ ‬در‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬از‪  ‬ا ‪ ‬‬ ‫ی ‪  ‬ز‪ ‬‬ ‫‪  ‬ن‪ ‬د ه‪ ‬آن‪ ‬ا ‪    ‬اد‪  ‬ا‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪  ‬ار‪  ‬ر ه‪ ‬‬
‫‪ .‬‬ ‫‪ ،‬ا‬ ‫ا دو‬ ‫‪ .‬در‬ ‫یر‬ ‫ا‬ ‫ز‬
‫‪ ‬‬
‫‪ ‬آن‪   O(n) ‬‬ ‫‪ ‬‬ ‫ه‪  ،    ‬‬ ‫ر‪    ‬را ‪ ‬ر ‪  ‬ل‪ n ‬را‪ ‬‬ ‫‪ ‬در‪ ‬ا ‪ ‬ا ر ‪   ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬
‫‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آ ‪ ‬ا ر ‪    ‬ا ‪   ‬در‬ ‫‪   ‬ا ای‪ ‬ا ر ‪ ‬روی‪ ‬ر ‪  ‬ی‪  ‬ل‪  ‬ر ‪   ‬‬ ‫‪ ‬وا‬ ‫در‪   ‬‬
‫‪ .‬‬ ‫ده زی ا ر‬ ‫وع‬ ‫‪.‬‬
‫‪ ‬‬
‫ب‪ .(1  )     ‬‬ ‫‪  ‬ای‪   ‬و‪ ‬ورودی‪ ‬آن‪ ‬ا‬ ‫‪   ‬د ‪ .‬ا ا‪  ‬م‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ط‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ن‪   ‬‬
‫‪ .(2  ) ‬‬ ‫وی‪ ‬در‪ ‬ر ‪ ‬در‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫ی‪  ‬ز‪ ‬و‪    ‬ر ه‪  ‬ای‪ ‬‬ ‫‪    ‬ر ه‪  ‬ای‪  ‬اد‪  ‬ا‬
‫اد‪ ‬‬ ‫ه‪ ‬ا ‪ ‬و‪ ‬‬ ‫‪     ‬ا ی‪ ‬ر ‪ ‬‬ ‫‪   .‬ز‬ ‫‪   ‬‬ ‫‪  ‬ار‪ ‬‬ ‫ده‪ ‬از‪   ‬‬ ‫ی‪ ‬ر ‪   ‬ا‬ ‫‪ ‬روی‪  ‬را‬
‫‪ ‬ادا ‪   ‬د ‪ .(3  ) ‬در‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫‪  ‬ر ‪    ‬وی(‪ ‬‬ ‫وی‪) ‬‬ ‫ه‪  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫ا‬
‫‪   ‬د ‪ .‬در‪ ‬وا ‪ ‬ا ‪ ‬ا ‪  ‬را ‪  ‬ا ‪  ‬ز‪ ‬‬ ‫‪    ‬را ‪ i ‬ام‪ ‬ر ‪  ‬ر ه‪ count ‬را‪   ‬وا ‪ ‬ا ا ‪   ‬‬ ‫ادا ‪ ‬‬
‫‪ ‬از‪ ‬‬ ‫‪ ‬در‪ ‬وا ‪   ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ .‬در‪  ‬ر ‪    ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫ی ‪  ‬ز‪  ‬ا‬ ‫ر ه‪  ‬ا‬ ‫‪   ‬وا ‪    ‬اد‪ ‬‬
‫ر‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫ی‪  ‬ز‪ .(4  )       ‬ا ‪   ‬را‪   ‬ا‬ ‫‪ ‬از‪  ‬ر ه‪  ‬ا‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬در‪ ‬‬ ‫ده‪ ‬‬ ‫ی‪  ‬ز‪ ‬را‪ ‬ا‬ ‫ا‬
‫‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪  ‬رد‪ ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬آن‪ ‬را‪   ‬‬ ‫‪ ‬ا ‪ ‬ا ‪    ‬ا‬ ‫‪ ‬‬ ‫‪   ‬‬
‫ده ا ‪  .‬‬ ‫را ا‬
‫‪ ‬‬
‫‪ ‬و ‪  ‬م‪    ‬د‪       ‬ا ی‪ ‬‬ ‫‪ .(5  ) ‬‬ ‫‪   ‬ر ‪   ‬‬ ‫‪ ‬آ ده‪  ‬دازش‪ ‬‬ ‫‪   ‬ا ا ‪  ‬ر ه‪ ‬‬
‫‪ ‬در‪  ‬ر ‪ ‬رخ‪   ‬د ‪    ‬اد‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪  ‬ه‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫ی‪  ‬ز‪ ‬‬ ‫‪  ‬ر ه‪  ‬اد‪  ‬ا‬ ‫‪ ‬و‪   ‬ا‬ ‫‪ ‬ر ه‪ ‬‬
‫‪ .‬در‪ ‬ا ‪  ‬رت‪  ‬ر ه‪  count ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و ‪  ‬را ‪  ‬ی‪  ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ای‪ ‬از‪ ‬ا ای‪ ‬‬ ‫ی‪  ‬ز‪ ‬در‪ ‬‬ ‫ا‬
‫ی‪ ‬و د‪ ‬دا ‪ ‬‬ ‫‪   ‬ا‬ ‫‪ ‬آ ه‪ ‬‬ ‫‪ ‬‬ ‫‪ count ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪  -1‬ا ‪      .  ‬ل‪ ‬ا ‪   ‬از‪ ‬ا م‪ ‬ا ای‪ ‬‬
‫‪  ‬ده‪ ‬ا ‪ .‬ا ‪  ‬ار‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬از‪  ‬ا‬ ‫ی‪  ‬ز‪ ‬ر ‪ ‬‬ ‫‪  ‬اد‪  ‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ا ‪ .‬ا ‪  ‬ار‪  count ‬ر ‪ ‬از‪ ‬‬
‫‪  ‬ده‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫ی‪  ‬ز‪ ‬‬ ‫‪ ‬ای‪ ‬از‪ ‬ر ‪  ‬اد‪  ‬ا‬ ‫‪ ‬ا ‪   ‬در‪ ‬‬ ‫‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ count‬‬
‫‪ True ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬دا ‪ .‬در‪  ‬ر ‪    ‬ار‪ count ‬‬ ‫‪ ‬آ ه‪  ‬ار‪ False ‬را‪ ‬‬ ‫‪ ‬‬ ‫ا ‪      .‬ل‪ ‬ا ‪  ‬ار‪ ‬‬
‫‪ .(6‬‬ ‫د )‬ ‫را‬ ‫در‬ ‫‪not count‬‬ ‫دا ‪ .‬ا‬
‫‪ ‬‬
‫‪ ‬‬
1.​ def​ parenthesesMatch(str):
2. count, i = 0, 0
3. while​ i < len(str) ​and​ 0<=count:
4. count += 1 ​if​ str[i] == '(' ​else​ -1
5. i += 1
6. return​ ​not​ count
 

 ‫را‬ ‫ورودی‬ ‫داده‬     .    ‫آن‬  ‫در‬ ‫از‬       ‫ ور‬ ‫دو ره‬ ‫را‬   ،        ‫در‬


 . ‫روی آن‬
   
   (Stack) .۶
 (Stack) ‫ن‬ ‫در‬ ۱.۶

  ‫ا‬ ‫ ص‬        ‫د‬ ‫ ه‬ .‫ د‬   ‫ زی‬ ‫ ده‬ ‫ی‬       ‫روی‬    ‫ا‬ ‫داده‬ ‫ن‬    


       : ‫دار‬ ‫ ر‬ ‫و‬     ‫ ی‬      ‫ا ر‬ .‫ د‬       ‫در‬  ‫ ا‬ ‫داده‬ ‫ن‬     ‫د‬     ‫و‬
  . ‫ار‬ ‫ی روی‬ ‫دار و‬ ‫را‬
 

 ‫ن‬ ‫در‬ ‫ه ر‬
 
s = []   

s.append(value)    ‫روی‬ ‫ا‬

value = s.pop()    ‫از‬ ‫دا‬

s[-1]    ‫ی‬ ‫ار‬ ‫د ن‬

if s:    ‫دن‬ ‫ر‬


... 
 
 . ‫د‬ ‫ن‬ ‫را‬ ‫ز‬ ‫ د‬:‫ل‬
s = []
s.append(“1st message”)
a.append(“2nd message”)
s.pop()
>>> “2nd message”
s.append(“3rd message”)
p.pop()
>>> “3rd message”
p.pop()
>> “1st message”
 

   
‫؟‪ ‬‬ ‫‪ ۲.۶‬آ‬

‫ی‪ .([]{}() ‬‬ ‫‪  ‬را‬ ‫‪ ‬داده‪  ‬ه‪ ‬ا )‬ ‫د‪ ،‬و‪  ‬و (‪  ‬ز‪ ‬و‪ ‬‬ ‫‪  ‬ا ‪  ،‬ا ٓ‬ ‫ی‪  )  ‬‬ ‫‪   :‬ر ‪ ‬از‪ ‬‬
‫‪ .‬‬ ‫ی زو‬ ‫آ‬ ‫ای‬
‫‪ ‬‬
‫‪ .‬در‪ ‬ر ‪ "]{}" ‬‬ ‫‪   ‬‬ ‫ی‪ ‬از‪    ‬ع‪     ‬‬ ‫‪ .‬در‪ ‬ر ‪ "{}[]()" ‬‬ ‫‪  :‬ر‪ ‬را‪      ‬ل‪  ‬وع‪   ‬‬
‫‪  ‬را "["‪ ،‬در‪ ‬‬ ‫‪  ‬ن‪  ‬و ‪  ‬ز‪، ‬‬ ‫‪ ‬و د‪  ‬ارد‪ ‬ز ا‪   ‬از‪ ‬‬ ‫‪ ‬در‪ ‬ر ‪ "{[}]" ‬‬ ‫‪  ‬ارد‪ .‬‬ ‫و ‪ ‬‬
‫‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪   ‬در‪ ‬آ ‪  ‬ا ‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬ر ‪  ‬ی‪   ‬‬ ‫‪  ‬ار‪ ‬دارد‪ .‬‬ ‫د‪ ‬‬ ‫‪ ‬دوم‪ ‬ر ‪ ‬آ‬ ‫ا‬
‫ه‪ ‬دارای‪ ‬‬ ‫‪ ‬را‪ ‬از‪ ‬آن‪  ‬ف‪ ،  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬د‪ ‬و‪ ‬ا ‪ ‬‬ ‫‪   ‬زوج‪ ([]   {}   () ‬‬ ‫‪  ‬ا ‪ ) ‬‬
‫د‪  .‬‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬را‪ ‬از‪ ‬ر ‪  ‬ف‪ .  ‬ا ‪    ‬ار‪ ‬ا ‪  ‬ر‪   ‬ر ‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪    ‬ر‪   ‬زوج‪ ‬‬ ‫ا ‪ ‬راه‪    ‬ده‪  ‬ای‪ ‬ا ‪ ‬‬
‫‪  ‬د‪ ‬آ ه‪ ‬‬ ‫‪ ‬در‪ ‬آن‪ ‬‬ ‫‪ ‬و‪ ‬زوج‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ده‪ ‬ا ‪ .‬ا ‪ ‬ر ‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬آ ه‪ ‬ر ‪ ‬او ‪ ‬دارای‪ ‬‬ ‫‪ ‬‬
‫‪   ‬‬ ‫‪  ‬ا ‪    ‬ر‪ ‬ر ‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ده‪ ‬ا ‪ .‬ا ‪ ‬ا ر ‪   ‬ازای‪   ‬‬ ‫ی‪ ‬‬ ‫ر ‪ ‬او ‪ ‬دارای‪ ‬‬
‫‪ .‬‬ ‫)‪O(n^2‬‬ ‫آن در‬ ‫ا‬ ‫‪.‬‬
‫‪ ‬‬
‫‪  ‬ی‪  ‬ا ‪ ‬ا ‪   .‬ا ‪   ‬راه‪           ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪  ‬اری‪ ‬ر ‪  ‬ای‪ ‬‬ ‫ل‪ ‬ا ‪ ‬روش‪ ‬‬ ‫ا‬
‫‪  ‬ی‪  ‬ز‪ ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ .‬ا ‪  ‬ر‪   ‬‬ ‫‪  ‬ه‪ ‬را‪ ‬‬ ‫ی‪ ‬‬ ‫‪   ‬و‪ ‬‬ ‫‪ ‬ا ی‪ ‬آن‪ ‬‬ ‫ر‪   ‬‬ ‫ا ای‪ ‬ر ‪  ‬ی‪ ‬‬
‫‪ ‬و د‪ ‬دارد‪  .    ‬ای‪  ‬ر ‪  ‬دن‪ ‬‬ ‫‪  ‬ر ‪     ‬‬ ‫‪ ‬‬ ‫ه‪ ‬‬ ‫رد‪ ‬و‪ ‬در‪  ‬رت‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ه‪ ‬را‪ ‬‬
‫‪  ‬ز‪ ‬آن‪ ‬را‪   ‬‬ ‫ه‪   ‬‬ ‫‪  ‬‬ ‫‪ .‬‬ ‫ده‪  ‬ه‪ ‬را‪ ‬‬ ‫‪  ‬ز‪ ‬ا‬ ‫‪ ‬‬ ‫‪     ‬آ‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬
‫‪  ‬ی‪  ‬ز‪  ‬ه‪ ‬ر ر‪ First>> ‬‬ ‫‪ ‬‬ ‫‪  ‬دن‪ ‬و‪  ‬ف‪  ‬دن‪ ‬در‪ ‬‬ ‫‪ ‬ا‬ ‫‪ .    ‬ا‬ ‫ی‪  ‬ز‪ ‬ا‬ ‫‪ ‬‬ ‫ا ی‪ ‬‬
‫ده‪   ‬‬ ‫‪ ‬ا‬ ‫‪  ‬ای‪   ‬ا ‪ ‬‬ ‫ن‪ ‬داده‪ ‬‬ ‫م‪ ‬‬ ‫‪ ‬را‪  ‬ا ‪  .    ‬ا ‪ ‬از‪ ‬‬ ‫ن‪ ‬داده‪ ‬‬ ‫‪ <<in Last Out‬‬
‫‪  .‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪    ‬ار ‪   .‬د ن‪   ‬‬ ‫‪  ‬ز‪ ‬آن‪ ‬را‪ ‬روی‪ ‬‬ ‫‪   .‬د ن‪   ‬‬ ‫‪   ‬ر ‪  ‬وع‪   ‬‬ ‫‪ ‬از‪ ‬‬ ‫در‪ ‬ا ر ‪ ‬‬
‫‪  "(" ‬ای‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬د ه‪  ‬ه‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬روی‪ ‬‬ ‫‪ ‬را‪  ‬ر ‪   ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬‬
‫‪ ‬را‪ ‬‬ ‫‪  ‬ز ‪  ‬ی‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ ‬د ه‪ ‬ا ‪ .‬‬ ‫‪ ‬‬ ‫‪     ‬‬ ‫")"‪ ‬و‪  "{" ‬ای‪ "}" ‬و‪  "[" ‬ای‪   ( "]" ‬ا ‪ ‬‬
‫و د ارد‪  .‬‬ ‫ی‬ ‫ر‬ ‫‪ .‬در‬ ‫ف ده و آن را ف‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬ار‪    ‬د‪ ،‬‬ ‫ر‪ ‬رو‪ ‬‬ ‫‪  ‬ز‪ ‬‬ ‫‪ ‬و‪   ‬‬ ‫‪   ‬‬ ‫ر‪ ‬ر ‪ ‬را‬ ‫‪ ‬ا ‪ ‬ا ر ‪   ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬
‫‪ .‬‬ ‫ا ا ر )‪O(n‬‬
‫‪ ‬‬
‫‪ "(){[]}"   ‬و‪ ‬د ی‪ ‬ر ‪ ‬‬ ‫‪   ‬ر ‪ ‬‬ ‫‪ ‬آن‪ ‬را‪  ‬ا ‪ ‬روی‪ ‬دو‪ ‬ورودی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫‪ ‬از‪ ‬در‬ ‫ای‪ ‬ا‬
‫‪  ‬ا ‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬و‬ ‫‪  ‬را‬ ‫‪ ‬‬ ‫‪  .‬ای‪ ‬ر ‪ ‬‬ ‫ن‪   ‬‬ ‫‪ ‬ا‬ ‫‪    "{[}]"   ‬رت‪ ‬د‬
‫د‪ :‬‬

‫‪ ‬‬ ‫ی‬ ‫ای‬ ‫ا ر روی ر‬ ‫از ا ای د‬


‫‪ ‬‬
‫‪ ‬‬ ‫‪ .‬ای‪ ‬ر ‪ ‬‬ ‫‪   ‬‬ ‫ی‪ ‬ر ‪ ‬‬ ‫‪     ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬د ‪     ‬ا م‪ ‬ر ‪ ‬‬
‫د‪ .‬‬ ‫ا‬ ‫"]}[{" و‬
‫‪ ‬‬
‫‪ ‬‬ ‫ی‬ ‫ای‬ ‫ا ر روی ر‬ ‫از ا ای د‬
‫‪ ‬‬
‫‪  .‬‬ ‫وع‬ ‫ا‬ ‫‪.‬‬ ‫را‬ ‫اب در‬ ‫ا‬ ‫ا ر‬ ‫ر‬ ‫ا دو ل‬
‫‪ ‬‬
‫‪ .(2  )     ‬‬ ‫‪  ‬ده‪    ‬د‪ ،‬‬ ‫ن‪   ‬‬ ‫‪   ،‬در‪ ‬‬ ‫‪   ‬‬ ‫ب ‪ .    ‬‬ ‫‪ ‬ا‬ ‫ا ا‪  ‬ای‪    ‬م‪ ‬‬
‫‪  ‬ار‪ ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪ .(3  ) ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ی‪ ‬‬ ‫‪   ‬زوج‪  ‬را‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫‪   ‬د‬
‫‪    ‬ار ‪ .‬‬ ‫‪ ‬آن‪ ‬را‪ ‬روی‪ ‬‬ ‫‪  ‬ز‪ ‬‬ ‫ط‪  (10   4 ‬ر‪    ‬را ‪ ‬را‪    ‬ا ‪ .‬در‪  ‬ر ‪    ‬را ‪   ‬‬ ‫)‬
‫‪ (7  ) ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ز‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪  ‬را ‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫رت‪ ‬ا ‪   ‬‬ ‫در‪   ‬ا‬
‫‪ ‬در‪ ‬‬ ‫‪   .(10  ) ‬ا م‪ ‬‬ ‫‪   ‬‬ ‫ی‪ ‬ر ‪ ‬‬ ‫‪ .(8  ) ‬در‪   ‬ا ‪  ‬رت‪ ‬‬ ‫‪  ‬ف‪   ‬‬ ‫از‪ ‬روی‪ ‬‬
‫‪  .(11‬‬ ‫)‬ ‫ی‬ ‫دارای‬ ‫ر‬

‫‪1. ​def​ bracesMatch(s):‬‬


‫‪2.‬‬ ‫][ = ‪stack‬‬
‫‪3.‬‬ ‫}']' ‪pairs = {'(':')', '{': '}', '[':‬‬
‫‪4.‬‬ ‫‪​for​ w ​in​ s:‬‬
‫‪5.‬‬ ‫‪​if​ w ​in​ pairs:‬‬
‫‪6.‬‬ ‫)‪stack.append(w‬‬
‫‪7.‬‬ ‫‪​elif​ len(stack)!=0 ​and​ pairs[stack[-1]] == w:‬‬
‫‪8.‬‬ ‫)(‪stack.pop‬‬
‫‪9.‬‬ ‫‪​else​:‬‬
‫‪10.‬‬ ‫‪​return​ ​False‬‬
‫‪11.‬‬ ‫‪​return​ ​len​(stack)==0‬‬
‫‪ ‬‬
‫‪ .    ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫ده‪         ‬را‪   ‬و‪ ‬‬ ‫‪  ‬ق‪ ‬از‪ ‬رو ‪ ‬ا‬ ‫‪ ،‬‬ ‫وه‪   ‬ا ر ‪ ‬‬
‫ا ‪ .‬‬ ‫اری زوج ی‬ ‫‪ 3‬ای‬ ‫ی در‬ ‫ده از د‬ ‫ط ا‬
‫‪ ‬‬
‫دارد‪ :‬‬ ‫ده از ا روش دو‬ ‫ا‬
‫‪   ‬آ ‪ ‬در‪ 7   ‬ا م‪ ‬‬ ‫‪ .‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪  if else ‬ای‪ ‬‬ ‫ده‪ ‬از‪  ‬اد‪ ‬ز دی‪    ‬ای‪ ‬‬ ‫)‪  (۱‬ز‪   ‬ا‬
‫‪ .‬‬
‫‪  ‬ل‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪      <>   ‬ان‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ‪ ‬در‪ ‬آ ه‪   ‬‬ ‫‪ ‬دارد‪   .‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫)‪ (۲‬‬
‫‪ ‬‬ ‫ارد‪ .‬‬ ‫ز‬ ‫ید‬ ‫و‬ ‫‪3‬ا‬ ‫ا زوج‬ ‫زم ا‬ ‫د‬ ‫ارا‬ ‫ر‬
‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬ ‫در‬ ‫ار ر‬ ‫‪ ۳.۶‬او‬

‫‪ ‬او ‪  ‬ار‪   ‬از‪ ‬آن‪    ‬ر ‪ ‬از‪ ‬آن‪ ‬‬ ‫‪    ‬ای‪    ‬ار‪ ‬در‪ ‬ا ‪ ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ ‬از‪  ‬د ‪ ‬دار ‪ .‬‬ ‫‪   :‬‬
‫‪  ‬ار‪1 ‬‬ ‫ی‪ ‬و د‪  ‬ا ‪ ‬‬ ‫‪  ‬ار‪  ‬ای‪ ‬‬ ‫‪  ‬دا ‪ .‬ا ‪ ‬‬ ‫‪ ‬را‪    ‬رت‪   ‬‬ ‫‪   ‬و‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬
‫د‪ .‬‬ ‫ا‬ ‫‪-‬‬
‫‪ ‬‬
‫ه ا ‪ .‬‬ ‫ز داده‬ ‫‪ .‬ض‬ ‫درک‬ ‫ا آن را‬ ‫ل وع‬ ‫را‬ ‫‪ :‬ر‬

‫‪ ‬‬
‫ورودی‪ ‬‬

‫‪   14 ‬‬ ‫‪   ‬از‪    3 ‬ر ‪ ‬از‪ ‬آن‪   ‬‬ ‫‪ 14 ‬ا ‪ .‬او ‪ ‬‬ ‫‪    ‬ر ‪ ‬از‪ ‬آن‪   ‬‬ ‫او ‪  ‬ار‪   ‬از‪ 4 ‬درون‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ز ‪ ‬‬ ‫‪  ‬ار د‪ .‬‬ ‫‪   .‬ا ‪    ‬ار‪ -1 ‬در‪ ‬آن‪ ‬‬ ‫ی‪   ‬از‪  14 ‬ر ‪ ‬از‪ ‬آن‪   ‬‬ ‫‪   ‬‬
‫‪ .‬‬

‫‪ ‬‬
‫ب‪ ‬‬

‫‪  ‬ی‪  ‬ر ‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪ ‬ا ‪ ‬ا ر ‪  ‬ای‪ ‬‬ ‫‪  ‬وع‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬از‪ ‬روش‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ان‪  ‬م‪ ‬‬
‫‪ (۲)   ،‬‬ ‫‪    ‬ار‪  ‬ر ‪ ‬از‪ ‬آن‪ ‬‬ ‫‪     (۱)   ‬‬ ‫‪   ‬از‪ ‬آن‪ ‬را‪  ‬ر ‪   ‬‬ ‫‪   ،‬ی‪ ‬‬ ‫‪  ‬ار‪ ‬در‪ ‬‬
‫‪ ‬‬ ‫‪   ‬ا ‪   ‬ا ‪  ‬ر‪ ‬را‪    ‬ای‪ n   ‬‬ ‫‪   .‬‬ ‫‪ ‬را‪ ‬‬ ‫‪     ‬ا ی‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ی‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫ل‪ ‬ا ‪ ‬ا ر ‪ ‬آن‪ ‬ا ‪   ‬از‪ ‬‬ ‫‪ .‬ا‬ ‫‪ ‬ا ‪ ‬ا ر ‪    O(n2 )  ‬‬ ‫‪ ‬‬ ‫‪ ‬ا م‪ ‬د ‪ ،‬‬
‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫ده‪    .    ‬ان‪  ‬ل‪   ‬و د‪ ‬ا‬ ‫‪  ‬ی‪ ‬ا‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫ی‪ ‬‬
‫‪ ‬‬ ‫‪ ،‬ا ‪  ‬ز‪    ‬ای‪ ‬‬ ‫‪    ‬ار‪ (14 ‬رد‪   ‬‬ ‫‪) 3 ‬‬ ‫‪ ‬ا‬ ‫‪  ‬ی‪   ‬‬ ‫‪    ‬ار‪ (4 ‬‬ ‫‪) ‬‬ ‫‪ ‬‬ ‫ا‬
‫‪  .‬‬ ‫ار ‪ (14‬را‬ ‫‪)3‬‬ ‫ا‬ ‫‪1‬‬ ‫ا‬ ‫اب ای‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪     ‬‬ ‫‪ ،‬آ ‪ ‬‬ ‫‪ 1 ‬را‪   ‬دا‬ ‫‪ ‬ا‬ ‫ب‪  ‬ای‪ ‬‬ ‫‪ ‬ا ‪  ‬اب‪ ‬‬ ‫‪  ‬د‪ .‬‬ ‫‪ ‬ا ‪  ‬ر‪ ‬‬ ‫ا ‪  ‬ض‪ ‬‬
‫‪   ‬‬ ‫‪   ) 1 ‬ار‪   (3 ‬‬ ‫‪  ‬ر ‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬ز ا‪ ‬در‪   ‬‬ ‫‪    ‬د؟‪  ‬اب‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬ ‫ای‪ ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬ا‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬ا‬ ‫ا ‪   ‬‬ ‫‪ ‬ا ‪ ‬و‪ ‬‬ ‫‪ (2 ‬از‪ ‬آن‪ ‬‬ ‫‪ ‬ا‬ ‫‪    ‬ار‪) 1 ‬‬
‫‪ .‬‬ ‫ز‬ ‫راه‬ ‫ه ذ را ای‬ ‫‪.‬ا‬
‫‪ ‬‬
‫‪ ‬را‪  ‬ا ‪    ‬؟‪    ‬ان‪  ‬ل‪  ‬ض‪   ‬‬ ‫‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬ا ن‪ ‬ا‬ ‫ا ‪  ‬ر ‪       ‬آ ‪  ‬وع‪ ‬از‪ ‬ا ی‪ ‬‬
‫‪    ‬د ‪   ‬از‪ 14 ‬‬ ‫‪   ‬ا‬ ‫‪ ‬ا ‪   .‬‬ ‫‪ ‬را‪  ‬ای‪ ‬آ ‪ ‬‬ ‫ده‪ ‬و‪ ‬‬ ‫‪    ‬ار‪ 14 ‬را‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬از‪ ‬ا ی‪ ‬‬
‫‪  14   ‬زی‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ر ‪ ‬از‪ ‬‬ ‫‪ ‬او ‪ ‬‬ ‫‪  ‬ا ‪  ‬د‪    ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪ ،7 ،13  ‬و‪ (12 ‬از‪ ‬آن‪ ‬‬ ‫)‬
‫‪ ‬‬ ‫‪ ‬از‪ ‬آ‬ ‫(‪ 14   ‬‬ ‫‪ .‬ز ا‪ 14   ‬از‪ ‬آ ‪  ‬ر ‪ ‬ا ‪  ) ‬در‪ ‬ا ‪  ‬رت‪  14 ‬اب‪   ‬‬ ‫ده‪ ‬از‪ ‬آ ‪   ‬‬ ‫‪ ‬ا‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬از‪ ‬را ‪     ‬‬ ‫ا ‪  ‬‬ ‫‪ .‬‬ ‫‪ ‬از‪ ‬آن‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬ا ‪  ‬رت‪ ‬‬
‫‪ .‬‬ ‫ده‬ ‫ا‬ ‫ن داده‬ ‫ا از‬ ‫دار ‪ .‬ای‬ ‫ا‬ ‫ی را در‬ ‫رو ه‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬وع‪     ‬و‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪     ‬‬ ‫‪ ‬را ‪ ‬‬ ‫‪  ‬ا ‪  ‬د‪ :‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬
‫‪  ‬ر ‪ ‬از‪ ‬آن‪ ‬ا ‪  ‬اب‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ .    ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬آن‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪   .‬د ن‪   ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪  ‬ر ‪ ‬از‪ ‬‬ ‫‪ ‬دار ‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ .‬در‪   ‬ا ‪  ‬رت‪ ‬آ ر‪ ‬از‪  ‬ی‪ ‬‬ ‫را‪ ‬‬
‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ .‬در‪   ‬ا ‪  ‬رت‪  ‬ار‪  ‬ی‪ ‬‬ ‫‪    ‬ار‪ -1 ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪ .‬ا ‪ ‬‬
‫‪  ‬ا ‪ ‬‬ ‫ن‪  ‬رو ه‪ ‬‬ ‫‪ ‬‬ ‫ای‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬ا ‪ ‬آن‪ ‬را‪    ‬ی‪ ‬‬ ‫‪ ‬از‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫ار‪ ‬‬
‫‪  .‬‬
‫د‪     ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪  ‬ل‪ ‬ز ‪   ‬‬ ‫‪   ‬در ‪  ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫دی‪ ‬را‪ ‬روی‪  ‬ل‪  ‬ق‪ ‬ا ا‪ ‬‬ ‫ا ر ‪ ‬‬
‫ه ا ‪ .‬‬ ‫داده‬ ‫رو ا ا از را‬ ‫ده ا ‪ .‬دآور‬ ‫ار ‪ 1‬را‬
‫‪ ‬‬
‫از ا ای ا ر روی داده ورودی‪ ‬‬

‫‪ ‬‬
‫ز ‪ .‬‬ ‫آن را‬ ‫‪.‬‬ ‫ر‬ ‫ه در‬ ‫روی ل داده‬ ‫ا ا ر‬
‫‪     ‬‬ ‫‪ ‬و‪  ‬را ‪ ‬ورودی‪   ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬د ‪ .‬ا ا‪ ‬‬ ‫‪  ‬ری‪           ‬را‪ ‬‬ ‫‪ ‬‬ ‫در‪   ‬‬
‫‪ ‬را‪ ‬‬ ‫‪       ‬‬ ‫‪ ‬ورودی‪ ‬‬ ‫‪    ‬ل‪ ‬‬ ‫‪     .(2  )     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫) ‪ .(1 ‬‬
‫‪ ‬‬ ‫‪  ‬ار‪ ‬از‪ ‬ا ی‪   ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪  ‬ار‪ ‬او ‪   -1 ‬د ‪ .(3  ) ‬‬ ‫‪     ‬دارد‪     .‬‬ ‫ای‪   ‬‬
‫(‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ض‪ ‬‬ ‫‪ ‬‬ ‫‪) -1 ‬‬ ‫‪ ‬آ ه‪  ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .(5  ) ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ا ای‪ ‬‬
‫ط ‪ 7‬و ‪  .(8‬‬ ‫ار )‬ ‫روی‬ ‫را‬ ‫ا ا‬ ‫ی در‬ ‫ز‬ ‫ا‬ ‫‪.‬‬
‫‪ ‬دار ‪  ) ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪  ‬ی‪ ‬‬ ‫‪ i ‬ام‪ ‬‬ ‫ی‪  ‬ر ‪ ‬از‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬ز‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪ .(12  ) ‬‬ ‫‪ ‬‬ ‫‪i ‬ام‪ ‬را‪ ‬‬ ‫‪   ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ،‬در‪  ‬رت‪ ‬و د‪  ،‬ار‪ ‬او ‪  ‬ر‬ ‫‪  ‬ی‪ ‬‬ ‫‪ .(9‬‬
‫ده‪ .(13  )   ‬در‪ ‬ا ‪ ‬‬ ‫‪   ‬آن(‪ ‬ا‬ ‫‪  ‬ی‪) ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪   ‬د ‪   ‬در‪ ‬‬ ‫‪i ‬ام‪ ‬را‪ ‬روی‪ ‬‬
‫‪ ‬‬ ‫‪ .(14‬‬ ‫دا )‬ ‫را‬
 

1.​ def​ nextGreater(nums):


2. stack = []
3. res = [-1] * len(nums)
4.
5. for​ i ​in​ range(len(nums)-1, -1, -1):
6. if​ ​not​ stack:
7. stack.append(nums[i])
8. else​:
9. while​ s ​and​ stack[-1]<=nums[i]:
10. stack.pop()
11.
12. res[i] = stack[-1] ​if​ stack ​else​ -1
13. stack.append(nums[i])
14. return​ res
   
 

 (Queue) .۷

   
‫)َ‪ (Queue‬‬ ‫‪۱.۷‬‬

‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ی‪  ‬ده‪  ‬زی‪    ‬د‪  .‬ه‪ ‬د‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫ن‪ ‬داده‪ ‬ا ‪   ‬روی‪ ‬‬ ‫‪   ‬‬

‫‪  ‬ر‪ ‬‬ ‫‪    ‬د‪ .‬ا ر ‪       ‬و‪   ‬‬ ‫‪ ‬در‪   ‬‬ ‫ن‪ ‬داده‪  ‬ا‬ ‫‪ ‬د ‪   ‬‬ ‫ص‪  ‬ا ‪  ‬و‪   ‬‬

‫د‪ .‬‬ ‫ف‬ ‫د از ا ای‬ ‫ا‬ ‫دار ‪:‬‬

‫ن‪ ‬‬ ‫در‬ ‫ه ر‬

‫‪ ‬از‪ ‬‬ ‫‪  ‬دن‪     ‬‬ ‫ده‪  ‬د‪ .‬در‪ ‬ا ‪  ‬رت‪  ‬ای‪ ‬ا‬ ‫‪ ‬ا‬ ‫‪    ‬ان‪ ‬‬ ‫ن‪    ‬ان‪ ‬از‪   ‬‬ ‫در‪ ‬‬

‫‪ ‬دارای‪ ‬‬ ‫ت‪  ‬ف‪ ‬‬ ‫‪ .‬ا اد‪ ‬ا ‪  ‬ر‪ ‬آن‪ ‬ا ‪   ‬‬ ‫ده‪ ‬‬ ‫‪ ‬از‪  pop(0)  ‬ا‬ ‫‪ append‬و‪  ‬ف‪ ‬از‪ ‬ا ای‪ ‬‬

‫‪ .‬‬ ‫ده‬ ‫از ژول ‪ deque‬ا‬ ‫د‬ ‫ا ‪.‬‬ ‫)‪O(n‬‬

‫‪ ‬‬
‫‪from​ collections i​ mport​ deque ‬‬ ‫‪ ‬‬ ‫ا ودن ژول‬

‫‪q = deque() ‬‬ ‫‪ ‬‬

‫‪q.append(a) ‬‬ ‫‪ ‬‬ ‫ا ودن ا ی‬

‫‪q.popleft() ‬‬ ‫‪ ‬‬ ‫ف از ا ای‬

‫‪q.clear() ‬‬ ‫‪ ‬‬ ‫دن‬


‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬
‫ات‪ ‬‬ ‫د‬ ‫‪۲.۷‬‬

‫‪ ‬از‪ ‬ا اد‪ ‬داده‪  ‬ه‪ ‬ا ‪    .‬ا ‪ ‬‬ ‫‪  ‬ن‪ ، end) ‬و‪   ‬‬ ‫‪  ‬د‪ ‬‬ ‫‪  ‬وع‪ ، start) ‬‬ ‫‪    :‬د ‪ ‬‬
‫‪ .‬ا ‪ ‬در‪   ‬‬ ‫‪      ‬د ‪  ‬ن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪      ،‬اد‪  ‬ار‪    ‬زم‪ ‬ا ‪    ،‬د‪  ‬وع‪ ‬ا‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ .‬‬ ‫ده‪ ‬‬ ‫ه‪ ‬آن‪ ‬را‪ 1000   ‬ا‬ ‫ع‪  ‬ر ‪ ‬از‪     1000 ‬‬ ‫ت‪ ‬‬
‫دا ‪ .‬‬ ‫را‬ ‫ای ر ن از ا ا ا‬
‫‪ ‬‬
‫‪ ‬آن‪ ‬را‪  ‬ب‪ ‬درک‪  ‬ده‪ ‬ا ‪ .‬ا ‪  ‬ار‪  ‬وع‪  ,2 ‬ار‪ ‬ا ‪ 9 ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪      ‬ل‪  ‬وع‪       ‬‬ ‫‪   :‬‬
‫‪ ‬‬ ‫‪    ‬‬ ‫‪ ‬از‪ 9   2 ‬ر ‪   .‬ا ا‪ 3 ‬را‪   2   ‬‬ ‫‪ ‬آ ه‪    ‬ان‪   ‬رو ی‪ ‬‬ ‫‪ ‬داده‪  ‬ه‪ [3,4] ‬‬
‫‪ ‬‬ ‫‪   .‬ا ‪  ‬ا ‪  2 ‬ر‪   ‬از‪ ‬‬ ‫‪ 9 = 5+4 ‬‬ ‫‪ 4 ‬را‪   ‬آن‪   ‬ا ا ‪      ‬ار‪ ‬‬ ‫‪ .‬‬ ‫‪ 5 = 2 + 3‬‬
‫‪ .‬‬ ‫از ا ا ا‬ ‫ده‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬آ ه‪    ‬ا ‪ 40 ‬را‪   ‬‬ ‫‪ ‬داده‪  ‬ه‪ [3 ,40] ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬د ‪ ،‬ا ‪  ‬ار‪  ‬وع‪ 999 ‬و‪  ‬ار‪  ‬ن‪ 42 ‬‬ ‫‪  ‬ان‪ ‬‬
‫ه‪ ‬آن‪ ‬را‪  1000   ‬ب‪   .    ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫‪   1039 ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫‪ ‬‬ ‫ار‪  ‬وع‪ ‬ا‬
‫‪  .‬ا ‪ ‬را ی‪ ‬د ‪ ‬را‪   ‬‬ ‫‪      .‬ر‪ ‬ا ودن‪    3 ‬ار‪ 42 ‬‬ ‫‪ 39 = (999+40)%1000 ‬‬ ‫‪    ‬ار‪ ‬‬
‫‪ .‬‬ ‫‪    ‬رد‪  ‬ز‪   ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪ ‬داده‪  ‬ه‪  ‬اد‪ 2 ‬‬ ‫‪    ‬ای‪  ‬د ‪  ‬وع‪  ،‬ن‪ ،‬و‪ ‬‬ ‫‪   ‬‬ ‫ن‪ ‬‬ ‫ا‬
‫‪ ‬و‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬آ ه‪    ‬ان‪   ‬ا‬ ‫‪ [5 ,10] ‬‬ ‫‪ ‬د ‪ ‬ا ‪  ‬ار‪ ‬ا ا‪  ،1 ‬ار‪ ‬ا ‪ ،7 ‬و‪  ‬ار‪ ‬‬ ‫‪  ‬ان‪ ‬‬
‫دا ‪ .‬‬ ‫ار ‪ -1‬را‬ ‫رت‬ ‫ر ‪ .‬در ا‬ ‫ار ا ا ا‬ ‫از‬
‫‪ ‬‬
‫‪   ‬از‪  ‬ار‪  ‬وع‪    ‬ار‪  ‬ن‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬م‪ ‬‬ ‫‪ ‬ا ر‬ ‫‪   ‬رو ‪ .‬در‪ ‬‬ ‫ی‪ ‬‬ ‫‪  ‬ان‪ ‬او ‪ ‬ا ر ‪  ‬اغ‪ ‬‬
‫دا ‪  .‬‬ ‫ان‬ ‫د‬ ‫ر‬ ‫را‬ ‫اد‬ ‫ز ‪.‬‬ ‫را‬
‫‪ ‬‬
‫‪  ‬وع‪ ‬از‪ ,999 ‬‬ ‫‪ ‬‬ ‫‪    ‬ل‪   ‬ز ‪ .‬در‪  ‬ل‪     ‬‬ ‫ی‪ ‬‬ ‫‪  ‬ن ‪  ‬ه ‪  ‬ر د‪  ‬ا ر ‪ ‬‬ ‫ای‪ ‬وا‬
‫‪   2 ‬‬ ‫ع‪ ‬‬ ‫‪ ‬از‪ 1000 ‬رد‪    ‬د‪ ‬و‪   ‬‬ ‫ع‪ ‬‬ ‫‪ ... ,3 ‬ا ‪   ‬در‪ ‬ا ‪   ‬‬ ‫‪ ,3 ‬‬ ‫‪ ،3 ‬‬ ‫ا ودن‪ ,3 ‬‬
‫‪   .‬ا ودن‪  ‬اد‪ ‬ز دی‪ ‬‬ ‫‪     ‬ا ودن‪  ‬ار‪ 44   3 ‬‬ ‫‪ .‬در‪ ‬‬ ‫‪ 41 ‬‬ ‫ع‪ ‬‬ ‫‪ ‬ای‪   ‬‬ ‫‪ ‬در‪ ‬‬ ‫ر ‪ ‬و‪ ‬‬
‫‪    ‬ر‪ ‬د ‪ ‬رد‪  ‬ن‪ ‬از‪   1000 ‬‬ ‫‪ .‬‬ ‫‪   1001 ‬ر ‪ ‬و‪   ‬ا ودن‪  ‬اد‪ ‬د ی‪    3 ‬ار‪ 43 ‬‬ ‫‪    3‬ار‪ ‬‬
‫‪ ‬از‪ ‬ا ‪   3 ‬از‪  ‬ار‪ ‬‬ ‫‪  ‬ی ‪    ‬ی‪ ‬‬ ‫‪  ‬د‪ .‬در‪ ‬ا د‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬و‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫ار‪ 42 ‬‬
‫‪ .‬‬ ‫ن‬ ‫ده از ‪ 4‬را ا‬ ‫ده از ‪ 3‬و ا‬ ‫ا‬ ‫دو‬ ‫ع‬ ‫ر ن‬ ‫‪ .‬در وا‬ ‫ده‬ ‫‪ 40‬ا‬
‫‪ ‬‬
‫‪ ‬آ ‪ ‬را‪ ‬‬ ‫‪ ‬و‪  ‬د ‪ ‬‬ ‫‪ ‬از‪ ‬در ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬آن‪ ‬را‪  ‬ا ‪ .    ‬‬ ‫ر‪ ‬در ‪ ‬و‪ ‬‬ ‫‪   ‬‬ ‫د ل‪  ‬دن‪ ‬‬
‫د ‪ .‬‬ ‫ن‬

‫‪ ‬‬
‫‪ ‬‬ ‫ار‬ ‫ای ر ن‬ ‫ی‬ ‫ها د‬ ‫از‬ ‫در‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬د‪      ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪      ‬رت‪ ‬‬ ‫‪ ‬در‪   ‬ز ن‪     ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫ا ‪ ‬در‪ ‬ا ر ‪ ‬‬
‫‪   ‬‬ ‫‪ ‬درون‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬در‪    ‬م‪ ‬در‪ ‬‬ ‫ن‪  ‬د‪ .‬ا ‪ ‬‬ ‫‪  ‬ی‪ ‬را‪ ‬ا‬ ‫‪    ‬ان‪ ‬‬ ‫‪ ‬و‪ ‬‬
‫‪ .‬‬ ‫ی‬ ‫ا‬ ‫از‬ ‫از ا م‬ ‫(‬ ‫د درون‬ ‫اد‬ ‫ب دار )‬ ‫ا‬
‫‪ ‬آن‪ ‬‬ ‫‪  ‬د‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪    ‬د‪ ‬در‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬دارای‪   ‬‬ ‫ی‪ ‬‬ ‫ا ‪ ‬ا ر ‪ ‬‬
‫‪    ‬ا ‪ 1000   ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬ر ن‪ ‬از‪  ‬ار‪  ‬وع‪    ‬ن‪ ‬و د‪ ‬دارد‪ ‬ز ا‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ا ‪   ‬‬
‫دد‪  .‬‬ ‫ود و دو ره‬
‫‪  ‬ی‪ ‬‬ ‫‪ ‬د ‪   .‬ا ‪  ‬رت‪   ‬‬ ‫دی‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪   ‬ا ر ‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬ا ‪ ‬‬ ‫ای‪ ‬ا‬
‫‪   ‬‬ ‫‪ .‬در‪ ‬ا ‪  ‬رت‪   ،‬و د‪ ‬ا‬ ‫‪ ‬آ ‪  ‬اری‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫ود‪   ‬آ‬ ‫ا د‪  ‬ه‪ ‬را‪ ‬‬
‫‪  ‬ه‪ ‬ا ‪ .‬د ‪ ‬آن‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬اد‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ ‬را‪ ‬ا د‪   ‬‬
‫ار ‪ .‬‬ ‫اد‬ ‫اری دار‬ ‫از‬ ‫ا‬
‫ا ‪ .‬‬ ‫دارای‬ ‫ی‬ ‫زی‪ ،‬روش‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬از‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪      ‬د‪ ‬آن‪ ‬ا ‪   ‬د‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪ ‬روش‪   ‬‬ ‫ل‪  ‬ا‬ ‫ا‬
‫‪   ‬را‪    ‬ا ‪    .‬رت‪ ‬د ‪ ،‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪    ‬زد‪ ،‬در‬ ‫‪ ‬را‪      ‬رت‪ ‬‬
‫‪ ‬ر ن‪      ‬ار‪  ‬اری(‪ ‬را‪ ‬ادا ‪   ‬‬ ‫‪   ‬ر ن‪    ‬د‪ ‬ا ‪    ‬م‪  ‬ن‪) ‬‬ ‫‪   ‬د‬ ‫‪  ‬‬ ‫ی‪ ‬‬ ‫روش‪ ‬‬
‫د ‪  .‬‬
‫‪ ‬‬
‫‪ ‬را‪ ‬‬ ‫‪   ‬ا ‪ .‬در‪ ‬ا ‪ ‬روش‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪   ‬‬ ‫‪ ،  ‬روش‪ ‬‬ ‫‪ ‬در‪ ‬در ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬روش‪ ‬‬ ‫‪ ‬‬
‫‪ .‬در‪ ‬‬ ‫‪      ‬داز ه‪ ‬ای‪ ‬‬ ‫ت‪   ‬‬ ‫ده‪ ‬از‪ ‬ا‬ ‫ر ن‪ ‬ا‬ ‫‪ ‬‬ ‫‪ .    ‬ا ‪ ‬ا‬ ‫‪  ‬رت‪  ‬ازی‪    ‬ز ‪ ‬و‪ ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪ .‬ا ‪  ‬ر‪   ‬را‬ ‫‪ ‬را‪    ‬ر‪      ‬م‪ ‬‬ ‫ده‪ ‬از‪ ‬روش‪ ‬ا ‪    ‬ا ‪   ‬‬ ‫ر ن‪ ‬ا‬ ‫ض‪ ،‬‬
‫ر‪  -- bfs ‬ا ‪-  ‬اف‪-‬اس(‪ ‬ا م‪   ‬‬ ‫‪     breadth-first search) ‬ا‬ ‫ی‪ ‬اول‪ ‬‬ ‫‪  ‬ه‪    ‬م‪ ‬‬ ‫روش‪ ‬‬
‫د‪ .‬‬
‫‪ ‬‬
‫‪ ‬را‪    ‬ز ‪ .‬در‪ ‬او ‪ ‬‬ ‫‪ ‬‬ ‫‪      ‬‬ ‫‪    ‬ی‪ ‬‬ ‫ده‪     ‬و‪   ‬‬ ‫‪  ‬وع‪ ‬ا‬ ‫ای‪ ‬ا ‪  ‬ر‪ ‬از‪ ‬‬
‫‪    ‬د‪ .‬ا ‪ ‬‬ ‫‪ ‬د ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬د‪   ‬‬ ‫‪ .‬در‪  ‬ا ‪     ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪      ‬اد‪ ‬‬ ‫م‪  ‬اد‪ ‬‬
‫‪    ‬‬ ‫‪  ‬رت‪  ‬ای‪ ‬‬ ‫‪ ‬ا م‪    ‬د‪ .‬ا ‪  ‬ر‪ ‬را‪   ‬‬ ‫‪   ‬‬ ‫‪    ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫ر‪   ‬ا ودن‪ ‬‬
‫‪ ‬‬ ‫ع‪ ‬‬ ‫ه‪ ‬‬ ‫‪  ) ‬د ‪ ‬‬ ‫وی‪ ‬در‪   ‬‬ ‫‪  ‬ا ن‪ ‬‬ ‫‪    ،‬ا‬ ‫‪ ‬‬ ‫‪ ‬ادا ‪   ‬د ‪      ‬ار‪ ‬‬ ‫ز‬
‫‪ ‬در‪ ‬‬ ‫‪ .‬ز‬ ‫‪     ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪ ‬دارای‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪      ‬ار‪ ‬‬ ‫‪ .‬او ‪ ‬‬ ‫اری(‪ ‬و د‪  ‬ا ‪ ‬‬
‫دا ‪  .‬‬ ‫ار ‪ -1‬را‬ ‫ار در وا ا ر‬ ‫ا ن‬
‫‪ ‬‬
‫ده‪  .    ‬ای‪ ‬ا ‪  ‬ر‪   ‬‬ ‫‪ ‬ا‬ ‫ن‪ ‬داده‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬و‪ ‬ادا ‪ ‬دادن‪ ‬آ ‪    ‬رت‪ ‬‬ ‫‪ ‬‬ ‫ای‪   ‬دا‬
‫‪ ‬‬ ‫ع‪ ‬‬ ‫‪ ‬دار ‪) ‬در‪ ‬وا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬ا ای‪ ‬‬ ‫‪ ‬را‪     ‬دارد‪    .‬ر‪   ‬‬ ‫‪  ‬ار‪   ‬‬ ‫‪ ‬ا ٓ‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬و‪   ‬‬ ‫‪  ‬دا‬ ‫ی‪   ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫(‪ ‬و‪   ‬ازای‪   ‬‬ ‫‪ ‬از‪ ‬‬
‫‪ .    ‬ا ‪ ‬ا ‪  ‬ر‪ ‬را‪ ‬در‪  ‬ر ‪ ‬ا م‪   ‬د ‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬را‪   ‬ا ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫(‪    ‬ز ‪   .‬‬
‫‪ ‬را‪ ‬‬ ‫‪ ‬ز ‪  ‬د ‪ ‬دا ‪ ‬‬ ‫‪ ‬ادا ‪   ‬د ‪ .‬‬ ‫‪  .‬ا ‪  ‬ر‪ ‬را‪   ‬د ن‪  ‬ار‪ ‬‬ ‫ن‪ ‬د ه‪  ‬ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬‬
‫د ‪ .‬‬ ‫ن‬ ‫ا اد ]‪ ([3 ,40‬از ل ی ق‬ ‫‪ ،42‬و‬ ‫د ا ا ‪ ،999‬ا‬ ‫ای ل دوم )‬
‫‪ ‬‬
‫‪ ‬‬ ‫را ا ی‬ ‫از‬ ‫آن‬ ‫دار و‬ ‫( از‬ ‫) ار‬ ‫ر‬ ‫‪.‬‬ ‫در‬ ‫در‬ ‫ار‬ ‫د‬
‫‪ .‬‬ ‫ا‬
‫‪ ‬‬
‫‪ .  ‬ا ‪ ‬ا ‪ ‬ا ر ‪   ‬‬ ‫‪ ‬در ‪ ‬را‪ ‬‬ ‫‪   ‬ا ‪    ‬ل‪ ‬داده‪  ‬ه‪    ‬ار‪  ‬ن‪   ‬ر ‪ ‬ا ر ‪    ‬ا ‪ ‬‬ ‫‪ ‬‬
‫‪  ‬ای‪ ‬ر ن‪   ‬آن‪ ‬ا م‪ ‬داد ‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬و ‪    ‬ار‪  ‬ن‪   ‬ر ‪   ،‬دا ‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬دارد‪ ‬و‪ ‬آن‪ ‬ا‬
‫روش ا م داد‪  :‬‬ ‫ان‬ ‫ر را‬ ‫‪.‬ا‬ ‫م از در‬ ‫ای ا در‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬آن‪ ‬را‪    ‬اه‪ ‬آن‪   ‬دار ‪    .‬ان‪  ‬ل‪    ‬اه‪  999 ‬ره‪ ‬‬ ‫‪  ‬ره‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  -۱‬وه‪    ‬ار‪ ‬‬
‫‪ .‬‬ ‫از آن را‬ ‫ی‬ ‫ار‬ ‫ره‬ ‫ا‬ ‫ار‬ ‫ده از ا‬ ‫دار ‪ .‬ا‬ ‫‪ 0‬را‬
‫‪ ‬‬
‫اری‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ط‪     ‬‬ ‫‪ ‬‬ ‫‪     ‬‬ ‫‪     .‬از‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ :‬‬ ‫ده‪ ‬‬ ‫‪ ‬ا‬ ‫‪ -۲‬از‪ ‬دو‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬از‪ ‬در ‪ ‬‬ ‫ط‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬ن‪ ‬د ‪ ‬‬ ‫ده‪   ‬‬ ‫‪ ‬و‪ ‬از‪    ‬ر ه‪ ‬ا‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬د ‪ ‬‬ ‫ع‪  ‬ی ‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آ ‪   ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ن‪ ‬‬ ‫‪ ‬از‪  ‬ون‪ ‬‬
‫‪ ‬آن‪     ‬و‪  ‬ر‪ ‬را‪ ‬ادا ‪   ‬د ‪ .‬ا ‪ ‬رو ‪ ‬را‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ،‬‬ ‫‪ ‬‬ ‫‪  ‬ن‪ ‬‬ ‫‪   ‬د ‪   .‬‬ ‫‪ ‬را‪ ‬‬
‫د ‪ .‬‬ ‫ادا‬ ‫ا م‬ ‫ار‬ ‫د ن‬
‫‪ ‬‬
‫‪ .‬در‪ ‬ا ‪ ‬روش‪ ‬از‪   ‬‬ ‫‪  ‬ار‪   ‬‬ ‫‪ ‬و‪ ‬ا ‪  ‬د ‪ ‬در‪ ‬‬ ‫‪   999   0   ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪  -۳‬د ‪ ‬ا د‪  ‬ه‪ ‬در‪ ‬‬
‫‪ ‬‬ ‫‪ 1000 ‬ا ‪ ‬و‪  ‬ار‪ ‬آن‪ ‬‬ ‫ده‪  .    ‬ل‪ ‬ا ‪ ‬‬ ‫(‪ ‬ا‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪       ‬آن ​‪ ‬‬ ‫‪  ) ‬از‪ ‬ا‬
‫‪ ‬‬ ‫‪    ‬ز‪ ‬در‪ ‬‬ ‫‪   ‬ا ‪ ‬‬ ‫‪   -1 ‬‬ ‫‪  ‬ه‪ ‬ا ‪  .‬ار‪ ‬او ‪   ‬‬ ‫‪ ‬‬ ‫‪     ‬آن‪  ‬ار‪ ‬در‪   ‬‬
‫‪  ‬ار‪  ‬وع‪ 999 ) ‬در‪  ‬ل‪  ‬ق(‪  ‬ار‪ 0 ‬را‪  ‬ار‪   ‬د ‪    ‬ن‪   ‬د ‪ ‬در‪ ‬‬ ‫ه‪  ‬ه‪ ‬ا ‪   .‬در‪ ‬ا‬ ‫‪ ‬‬
‫‪ ‬آ ه‪  ‬ار‪ ‬‬ ‫‪  ‬ن‪ ‬‬ ‫‪ (۱) ‬ا ‪  ‬ار‪  X ‬ا ‪ ‬‬ ‫‪  ‬ون‪ ‬‬ ‫ه‪    ‬ار‪ X ‬از‪ ‬‬ ‫‪ ‬ا د‪  ‬ه‪ ‬ا ‪ .‬‬ ‫‪ ‬‬
‫‪    ‬ی‪ ‬‬ ‫‪ ،    ‬و‪ (۲) ‬در‪   ‬ا ‪  ‬رت‪ ‬‬ ‫ت‪    ‬رد‪  ‬ز‪ ‬را‪ ‬‬ ‫‪    ‬اد‪ ‬‬ ‫‪ ‬‬ ‫‪ X ‬ام‪ ‬در‪ ‬‬
‫‪X ‬ام‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آن‪   ‬از‪ ‬ر ‪ ‬را‪  ‬ا ‪ ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬در‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬
‫د ‪ .‬‬ ‫ار‬ ‫وه‬
‫‪ ‬‬
‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ورودی‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪  ‬ا ‪ ‬دا ‪ ‬و‪  ‬ای‪ ‬‬ ‫‪ ‬ورودی‪ 1000 ‬‬ ‫‪   ‬ا ازه‪ ‬‬ ‫روش‪  ‬م‪  ‬ون‪ ‬‬
‫‪ .‬‬ ‫ده‬ ‫ها‬ ‫د ا د‬ ‫ط‬ ‫ا روش ای د ل دن‬ ‫د‪.‬‬ ‫ده ا‬ ‫ا‬
‫‪ ‬‬
‫ده‪    ‬ژول‪ deque ‬را‪ ‬‬ ‫‪ ‬آ ده‪ ‬ا‬ ‫ن‪ ‬داده‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪  .‬ای‪ ‬ا‬ ‫‪ ‬ا ‪ ‬او ف‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬ا ر ‪   ‬‬
‫‪ .(2  ) ‬در‪   3   ‬ا ‪ ‬‬ ‫ده‪   ‬‬ ‫‪  ‬ای‪   ‬ا‬ ‫ی‪ ‬‬ ‫‪  ‬م‪ ‬و‪  ‬را‬ ‫‪ .(1  ) ‬‬ ‫‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬ا م‪    ‬د‪ .‬‬ ‫د‪ ‬‬ ‫ده‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬و‪ ‬‬ ‫د‪  ‬ا‬ ‫‪ .‬ا ‪  ‬ر‪  ‬ای‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ای‪  ‬ار‪ ‬‬
‫‪   .‬ا ‪  ‬ار‪1 ‬‬ ‫‪    ‬ا ‪ ‬از‪  ‬د‪  ‬وع‪    ‬ن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ (end ‬از‪ ‬‬ ‫‪) ‬‬ ‫د‪ ‬‬
‫ط ‪ 5‬و ‪  .(6‬‬ ‫دا )‬ ‫‪ -‬را‬
‫‪ ‬‬
‫‪      ‬م‪    step ‬ل‪    1000 ‬ار‪ ‬‬ ‫‪ ‬‬ ‫(‪ ‬در‪ ‬آن‪  ‬ار‪ ‬دارد‪ ‬از‪   ‬‬ ‫‪  ) ‬‬ ‫‪    ‬ار‪ ‬‬ ‫ای‪ ‬د ل‪  ‬دن‪ ‬‬
‫‪  .(8‬‬ ‫)‬ ‫او ‪ -1‬ای‬
‫‪ ‬‬
‫‪  ‬وع‪ ‬را‪ ‬در‪ ‬آن‪  ‬ار‪   ‬د ‪ .(10  ) ‬از‪ ‬آ ‪      ‬ری‪  ‬ای‪ ‬ر ن‪    ‬د‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬‬
‫‪  ‬ار‪   ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪ .(11  )     ‬‬ ‫‪ ‬‬ ‫‪   ‬را‪  ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫ط‪   ‬آن‪ ‬در‪ ‬‬ ‫‪  ،‬ار‪ ‬‬ ‫وع‪  ‬زم‪ ‬‬
‫‪ ‬‬ ‫‪  ‬د(‪  ‬ر‬ ‫‪   ‬‬ ‫ی‪ ‬در‪  ‬زه‪ 999   0 ‬در‪ ‬د‬ ‫‪ ‬د ‪  ‬د‪ ‬‬ ‫‪  ‬د‪) ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪      ‬د‪ ‬ا ‪ ‬‬ ‫ز‬
‫‪ ‬آن‪    ‬د‪  ‬ن‪ (15  ) ‬و‪ ‬ا ودن‪     ‬‬ ‫‪ ،‬‬ ‫‪ ‬از‪ ‬ا ای‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬دا‬ ‫را‪ ‬ا م‪   ‬د ‪ .‬ا ‪  ‬ر ‪ ‬‬
‫‪ ‬ز ‪ ‬‬ ‫ط‪   .(21   13 ‬‬ ‫‪) ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ودن‪ ‬آن‪   ‬‬ ‫‪ ،‬و‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آن‪  ‬ای‪ ‬ا د‪  ‬د ‪ ‬‬ ‫د ‪ ‬‬
‫‪ ‬‬ ‫‪  .‬‬ ‫ا ا ر را ده زی‬
 
 
1.​ from​ collections ​import​ deque
2. ​def​ minSteps(start, end, nums):
3. mod_value = 1000
4.
5. if mod_value<end or end<0:
6. return -1
7.
8. step = [-1] * mod_value
9.
10. q = ​deque​([start])
11. step[start] = 0
12.
13. while q:
14. value = q.popleft()
15. if​ value == end:
16. return​ step[value]
17. for​ n ​in​ nums:
18. new_value = (value + n) % mod_value
19. if​ step[new_value]==-1:
20. q.append(new_value)
21. step[new_value] = step[value] + 1
22. return​ -1
 
 
  : ‫ا‬ ‫ق‬ ‫ا ر‬ ‫ای‬
       ‫در‬ ‫و‬ ‫ د‬     mod_value-1   0 ‫ زه‬ ‫در‬    ‫ د‬ ‫از‬ ‫ د‬      ‫ا ر‬  ‫ا‬ ‫از‬     ‫در‬
  ‫ا‬     ‫آ ه‬ ، ‫د‬ ‫ ن‬ n   ‫را‬   ‫ ل‬  ‫ا‬ .‫ د‬       ‫ ار‬ (nums  )   ‫ل‬
   .‫د‬ ‫ ا‬O(n) ‫ا‬ ‫ا ر‬
 (Linked List) ‫ی‬ .۸

   
‫ی‪ ‬‬ ‫‪۱.۸‬‬

‫‪ ‬ا ‪   .‬‬ ‫‪ ‬دار ‪ ‬‬ ‫‪   ‬ا ازه‪ ‬‬ ‫‪    ‬ز‪   ‬‬ ‫ن‪ ‬داده‪ ‬ا ‪   ‬در‪   ‬‬ ‫ی‪   ‬‬ ‫‪ ‬‬

‫ی‪  ‬ده‪  ‬زی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬دار ‪ ،‬را‪    ‬ان‪    ‬رت‪ ‬‬ ‫‪ ‬‬ ‫‪    ،‬اد‪ ‬‬ ‫‪  ‬و‪ ‬‬

‫‪ ‬ا د‪ ‬‬ ‫‪ ‬ا ره‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬دادن‪ ‬‬ ‫‪ ‬ا ‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫ر‪   ‬از‪ ‬ا‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬‬

‫‪   ‬‬ ‫‪ ‬و دش‪ ‬ا ل‪ ‬آن‪ ‬‬ ‫‪ ‬و د‪ ‬دارد‪     ‬‬ ‫‪ ‬ا‬ ‫‪   ‬‬ ‫‪ .‬در‪  ‬ر‪  ‬ار‪  ‬ای‪   ‬‬ ‫‪ ‬‬

‫‪ ‬‬ ‫‪    ‬س‪   ‬ا ‪  ‬ه‪  Node   ‬ا ‪ .‬‬ ‫ری‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬ا ‪   .‬راه‪  ‬ده‪  ‬ده‪  ‬زی‪ ‬‬

‫ی‪ .‬‬ ‫ی در‬ ‫‪ next‬ا ره ی ا‬

‫‪class​ Node:‬‬
‫‪​def​ ​__init__​(​self​, value):‬‬
‫‪​self​.value = value‬‬
‫‪​self​.next‬‬ ‫‪= None‬‬
‫‪  ‬‬
‫‪ :‬‬ ‫رت‬ ‫ا‬ ‫و‬ ‫دو ه‬ ‫ای‬

‫‪ ‬‬
‫)‪node1 = Node(100‬‬
‫)‪node2 = Node(200‬‬

‫‪node1.next = node2‬‬
‫‪ .‬‬ ‫رت ز‬ ‫ه‬ ‫ا‬ ‫درون‬

‫‪ ‬‬
‫‪ ‬‬ ‫ی‬ ‫و‬ ‫ا‬ ‫ع‬ ‫ده‬ ‫د ‪.‬ا‬ ‫ن‬ ‫رت ‪100->200‬‬ ‫را‬ ‫ا‬

‫‪ ‬‬ ‫م دارد‪ .‬‬
‫‪ ‬‬ ‫را‬ ‫‪۲.۸‬‬

‫‪ ‬‬ ‫‪ ‬د ‪      ‬د ‪ ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ ‬و‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬و‪    ‬د‪ ‬در‬ ‫‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ :‬‬
‫‪ ‬‬ ‫‪  ‬ر ‪    ‬وی‪ ‬‬ ‫‪     ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫از‪   x ‬از‪  ‬د ‪  ‬ر ‪    ‬وی‪  x ‬ار‪ ‬‬
‫‪ .‬‬
‫‪ ‬‬
‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬آن‪ ‬را‪ ‬در ‪ ‬درک‪  ‬ده‪ ‬ا ‪ .‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬را‪      ‬ل‪  ‬وع‪   ‬‬ ‫‪   ‬‬ ‫‪ ​ :‬‬
‫‪ ‬از‪   9 ‬‬ ‫‪  ‬د ‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ،‬آ ه‪ ‬در‪ ‬‬ ‫‪ ‬و‪ x=9 ‬‬ ‫‪  ‬د ‪ 15->2->11->5->9->12 ‬دا ‪ ‬‬
‫رت ‪ 2->5->15->11->9->12‬در آ ‪ .‬‬ ‫ا‬ ‫‪.‬‬ ‫آن ار‬ ‫آن و‬
‫‪ ‬‬
‫‪  ‬ر ‪  ‬وی‪ x ‬و‪ ‬د ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫ی‪  ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا د‪ ‬دو‪ ‬‬ ‫‪ ‬راه‪  ‬ای‪   ‬ا ‪ ‬‬ ‫ده‪ ‬‬
‫‪    ‬‬ ‫‪ ‬را‪     ‬و‬ ‫‪ ‬از‪  ‬ر ‪ ،‬ا ‪ ‬دو‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬از‪  ‬ا‪  ‬دن‪  ‬د ‪ ‬‬ ‫‪ ‬از‪   x ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪   ‬و‪   ‬‬ ‫‪ ‬را‪  ‬ر‪ ‬‬ ‫ی‪ ‬ا‬ ‫‪ ‬‬ ‫‪  ‬ا‪   ‬‬ ‫د‪ ‬آ ‪  .‬ای‪ ‬ا د‪ ‬دو‪ ‬‬ ‫‪  ‬ه‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪  .‬‬ ‫و‬ ‫از دو‬ ‫ا ی ام‬ ‫د ن‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪   .‬ا ‪  ‬ر‪ ‬‬ ‫ن‪ ‬‬ ‫ی‪  ‬ل‪ ‬ا‬ ‫‪ ‬‬ ‫‪   ‬آن‪ ‬را‪ ‬روی‪ ‬‬ ‫‪ ‬‬ ‫ن‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪ ‬ا‬ ‫‪ ‬از‪ ‬در‬ ‫ای‪ ‬ا‬
‫‪ ‬ز ‪ ‬را‪ ‬ر ‪     ‬‬ ‫ن‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫م‪  ‬ده‪  ‬زی‪ ‬‬ ‫ی‪ next ‬را‪ ‬در‪ ‬‬ ‫‪   ‬ا ره‪ ‬‬ ‫د ‪     ‬‬
‫‪ ‬و‪ ‬دو‪ ‬‬ ‫ی‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا ا ‪ ‬‬ ‫‪ ‬ز ‪ ‬و‬ ‫در‪        ‬ا ‪ ‬ا ای‪ ‬ا ر ‪ ‬را‪  ‬ح‪   ‬د ‪ ‬و‪ ‬د ل‪ .    ‬‬
‫‪ ‬از‪ (x ‬را‪  ‬ن‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ر ‪    ‬وی‪ (x ‬و‪) less_list ‬‬ ‫‪) greater_eq_list ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬
‫د ‪ .‬‬
‫‪ .‬‬ ‫ی‬ ‫ی‬ ‫و‬ ‫یا‬ ‫او‬ ‫و‬

‫‪ ‬‬
‫د ‪   .‬‬ ‫ن‬ ‫را‬ ‫ا‬ ‫اول‬ ‫از‬ ‫ز و‬

‫‪ ‬‬ ‫وی و ‪ 2‬ا ی‬ ‫ر‬ ‫ار ‪ 15‬ا ی‬ ‫‪.‬‬ ‫ا‬ ‫اول‬ ‫از‬ ‫ی‬ ‫ی‬ ‫و‬
‫د‪ .‬‬ ‫ا‬

‫‪ ‬‬
‫‪  ‬ی‪   ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪    ‬د‪ .‬ا ‪ ‬‬ ‫‪ greater_eq_list ‬ا‬ ‫‪   ‬‬ ‫‪ ‬اول‪  ‬ر ‪ ‬از‪   9 ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آ‬ ‫ا ‪  ‬ز‪ ‬دار ‪   ‬ا ره‪  ‬ی‪ ‬دا ‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬ ‫‪   ‬آن‪ ‬را‪   ‬ا ی‪ ‬ا ‪ ‬‬ ‫ر ‪ ‬از‪ 9 ‬‬
‫‪ .‬در‪ ‬‬ ‫‪   (greater ‬‬ ‫‪ ‬و‪  g ‬دآور‪ ‬‬ ‫ی‪ ‬دم‪   ‬ا‬ ‫‪   tail ‬‬ ‫‪ ‬را‪  ‬ا ‪ .‬ا ‪ ‬ا ‪ ‬ا ره‪   ‬را‪) gtail ‬‬ ‫ا ‪ ‬‬
‫‪ ‬‬ ‫‪ less_list ‬ا‬ ‫‪   ،‬‬ ‫‪ ‬از‪   9 ‬‬ ‫‪   ‬آن‪ ‬‬ ‫‪   ‬ر ‪   .‬ا ‪ ‬‬ ‫‪   ‬دو ‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬ ‫ادا ‪ ‬‬
‫‪   ‬ا ره‪  ‬ی‪   ‬ا ی‪ ‬آن‪ ‬را‪   ‬دارد‪ .‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬ا ره‪      ‬م‪  ltail ‬ای‪ ‬ا ‪ ‬‬ ‫اش‪   ‬‬
‫‪ .  ‬ا ‪  ‬ر‪ ‬را‪ ‬‬ ‫‪ greater_eq_list ‬ا‬ ‫‪ ‬ا ‪  .‬ا ‪   ‬آن‪ ‬را‪   ‬ا ی‪ ‬‬ ‫‪  ‬ی‪  ‬ار‪ 11 ‬دارد‪   ‬از‪ 9 ‬‬
‫‪ ‬‬ ‫‪ ‬آ ‪ ‬‬ ‫‪  ‬ار‪ gtail ‬را‪  ‬وز‪         ‬‬ ‫‪ gtail ‬ا م‪   ‬د ‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬آ ‪ ‬‬ ‫‪ ‬ا ره‪ next   ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬ا ره‪     ‬ا‬ ‫‪ ‬و‬ ‫‪ ‬ا م‪   ‬د ‪   .‬ر ن‪   ‬ا ی‪ ‬‬ ‫‪ .‬ا ‪  ‬ر‪ ‬را‪   ‬ر ن‪   ‬ا ی‪ ‬‬ ‫ا ره‪ ‬‬
‫د‪ .‬‬ ‫ا‬

‫‪ ‬‬
‫‪ ‬‬ ‫یا‬ ‫از‬ ‫ی‬ ‫ی‬ ‫و‬
‫‪ ‬‬
‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬در‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ا‪  ‬ا ‪ ‬ا ‪ ‬و‪ ‬‬ ‫وی‪ ‬را‪ ‬در‪   ‬‬ ‫‪  ‬ر ‪   ‬‬ ‫ی ‪  ‬ر‪ ‬‬ ‫ب‪    ‬ا‬
‫د ‪ .‬‬
‫‪ ‬‬
‫‪ .‬‬ ‫‪  ‬ر ‪ ‬از‪  x ‬ار‪ ‬‬ ‫‪   ‬از‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ای‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪     ‬‬ ‫‪   ‬ا ‪ ‬دو‪ ‬‬
‫‪  ‬ر ‪  ‬وی‪   ‬ا ره‪  (۲) ،  ‬ار‪ next ‬‬ ‫‪ ‬ا ای‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ی‪ ‬‬ ‫ای‪ ‬ا ‪  ‬ر‪ (۱)   ‬‬
‫‪ ‬ا ره‪     ‬‬ ‫‪ ‬‬ ‫‪     head ‬ا ای‪ ‬‬ ‫‪  ‬د‪ ،‬و‪ (۳) ‬‬ ‫‪  ‬ر ‪  ‬وی‪ null     ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬ا‬ ‫در‪ ‬‬
‫د ‪ .‬‬ ‫ن‬ ‫را‬ ‫ا ره‬ ‫ز و‬ ‫‪.‬‬ ‫ا ره‬ ‫او‬

‫‪ ‬‬
‫‪ ‬‬ ‫‪   ‬در‪  ‬ده‪  ‬زی‪    ‬ادی‪ ‬ا ره‪   ‬و‪ ‬‬ ‫‪     ‬و‪   ‬‬ ‫‪   ‬ا ر ‪ ‬در ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪ ‬او ف‪ ‬‬
‫‪   ‬‬ ‫‪ ‬ا ‪   .‬ا ‪ ‬‬ ‫ب‪ ‬‬ ‫‪ ‬آن‪ ‬ا‬ ‫‪  ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬دارای‪ ‬‬ ‫‪  ‬ز‪ ‬دار ‪ .‬از‪ ‬آ ‪   ‬‬ ‫ا‬
‫‪ ‬ا ا (‪ ‬ا ‪ ‬ا ر ‪   O(n) ‬‬ ‫‪) ‬‬ ‫‪ ‬‬ ‫‪ ،‬آ ه‪ ‬‬ ‫‪ n ‬‬ ‫‪ ‬دار ‪ ،‬ا ‪  ‬ل‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ز‪   ‬‬
‫‪  .‬‬ ‫ا‬ ‫از آن‬ ‫وا ر‬
‫‪ ‬‬
‫‪  ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪   .  ‬ا ‪  ‬رت‪    ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ‬در‪  ‬رد‪ ‬روش‪  ‬ده‪  ‬زی‪ ‬د ی‪      ‬رت‪ ‬‬
‫ی‪  ‬ر ‪    ‬وی‪  ‬ار‪  x ‬د‪ ‬آن‪ ‬‬ ‫‪ .  ‬ا ‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دو ره‪ ‬از‪ ‬ا ای‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬
‫‪ ‬روش‪ ‬ا د‪ ‬دو‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬ا ر ‪ ‬دارای‪ ‬‬ ‫‪   ‬و‪ ‬در‪   ‬ا ‪  ‬رت‪  ‬ری‪ ‬‬ ‫‪ ‬‬ ‫را‪   ‬ا ی‪ ‬‬
‫‪  .‬‬ ‫را دو ر‬ ‫وت‬ ‫یا ‪ .‬ا‬
‫‪ ‬‬
‫‪   ‬ر ‪   ‬ا ر ‪ ‬اول‪   ‬را ‪   ‬ا ‪ ‬و‪  ‬ده‪  ‬زی‪ ‬آن‪  ‬ا ‪    ‬ا ‪  ‬د‪  .‬ا ‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬روش‪ ‬اول‪ ‬‬
‫‪ ‬‬ ‫ی‪ ‬و‪  ‬اری‪ x ‬را‪   ‬آن‪   ‬د ‪ .(1  ) ‬‬ ‫‪ ‬‬ ‫‪ ‬اول‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬و‪  ‬را‬ ‫‪ .‬ا ا‪  ‬م‪ ‬‬ ‫‪ ‬‬
‫‪   .(2  ) ‬ا ره‪      ‬ای‪ ‬ا ره‪   ‬‬ ‫‪ ‬‬ ‫وی‪ x ‬‬ ‫‪  ‬ر ‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬در‪ ‬‬ ‫ط‪ 5 ‬و‪ .(6 ‬‬ ‫‪) ‬‬ ‫‪ ‬از‪ x ‬در‪   ‬‬ ‫‪ ‬‬ ‫ی‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪ .(3  ) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬
‫‪  ‬ر ‪ ‬‬ ‫‪    ‬ار‪ ‬آن‪   ‬ا ی‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬رو ‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪  ‬ار‪    ‬ر‪   ‬‬ ‫‪ ‬‬
‫ی‪  ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آ ‪ ‬‬ ‫ط‪ .(16   8 ‬در‪ ‬ا ‪  ‬ار‪ ‬ا ره‪   ‬‬ ‫‪) ‬‬ ‫‪   ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬ ‫وی‪     ‬‬
‫‪  ‬ر ‪  ‬وی‪   ‬‬ ‫‪ ‬را‪   ‬ا ای‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آ ‪ ‬‬ ‫‪ ‬و‪ ‬ا ره‪   ‬‬ ‫وی‪ (gtail)   ‬را‪   null ‬‬
‫دا ‪20  ) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪    ‬ان‪ ‬ا ای‪ ‬‬ ‫‪ ‬ا ا ‪ ‬ر ‪ ‬‬ ‫‪  18  )     ‬و‪ .(19 ‬در‪ ‬ا ‪ ‬‬
‫(‪ .‬‬
‫‪ ‬‬ ‫‪ ‬‬
 
 

1.​ def​ partition(head, x):


2. greater_eq_list = ListNode(0)
3. gtail = greater_eq_list
4.
5. less_list = ListNode(0)
6. ltail = less_list
7.
8. ​while​ head:
9. ​if​ head.val<x:
11. ltail.next = head
12. ltail = ltail.next
13. ​else​:
14. gtail.next = head
15. gtail = gtail.next
16. head = head.next
17.
18. gtail.next = None
19. ltail.next = greater_eq_list.next
20. ​return​ less_list.next

 
   (Binary Tree) ‫دودو‬ ‫ ​در‬.۹
‫دودو ‪ ‬‬ ‫‪ ۱.۹‬در‬

‫‪   ‬در ‪ ‬وارون‪ ‬را‪ ‬‬ ‫‪ ‬آن‪ ‬‬ ‫‪ ‬ا ‪   ‬ار ط‪ ‬‬ ‫اری‪ ‬داده‪ ‬‬ ‫ن‪ ‬داده‪  ‬ای‪ ‬‬ ‫در ‪ ‬دودو ‪   ‬‬

‫ر‪ .    ‬‬ ‫‪ ‬‬ ‫ر‪ ‬داده‪   ‬در‪  ‬ر د ی‪ ‬‬ ‫ا ‪     ‬و‪    ‬ه‪ ‬در ‪  ‬ا ‪ ‬دو‪  ‬ز ‪ ‬دارد‪  .‬ا ‪ ‬‬

‫ل‪  x + y  ‬را‪    ‬ان‪    ‬رت‪   ‬در ‪ ‬دودو ‪   ‬ر ‪ + ‬و‪    x ‬ان‪  ‬ز ‪   ‬و‪    y ‬ان‪ ‬‬ ‫‪ ‬‬

‫‪ ‬را‪ ‬در‪ ‬‬ ‫‪  ‬ر ‪  ‬ب‪   ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬د ‪    ‬ان‪ ‬‬ ‫ز ‪ ‬را ‪  ‬ن‪ ‬داد‪    .‬ان‪ ‬‬

‫‪     ‬دارد‪ .‬ا ر ‪  ‬ی‪ ‬ا د‪  ‬ه‪  ‬ای‪  ‬دازش‪ ‬‬ ‫‪  ‬ن‪ ‬داد‪      ‬د‪  ‬ار‪ ‬‬ ‫‪   ‬در ‪ ‬دودو ‪ ‬‬

‫‪ ‬ا ‪ ‬ا ‪   ‬در ‪ ‬‬ ‫‪ .‬وا‬ ‫در ‪ ‬دودو ‪  ‬رت‪  ‬دازش‪ ‬ای‪   ‬ا ‪ ‬داده‪     ‬د ‪    ‬ون‪ ‬آن‪ ‬ا ن‪   ‬‬

‫ده‪  ‬ی‪ ‬دار ‪   .‬ا ‪  ‬ل‪ ‬‬ ‫‪   ،‬ر د ی‪ ‬‬ ‫ی‪ ‬دودو ‪   ‬در ‪ ‬دودو ‪ ‬‬ ‫ی‪ ‬دودو ‪  ‬ص‪   ،‬در ‪ ‬‬

‫ا ‪ .‬‬ ‫ی‬ ‫ای‬ ‫ژه‬ ‫دودو‬ ‫ری از ارد در‬ ‫در‬

‫‪ ‬‬

‫ن‪ ‬‬ ‫دودو در‬ ‫ه ر در‬

‫‪ ‬و‪ ‬ا ای‪ ‬ا ر ‪  ‬ی‪ ‬روی‪ ‬در ‪ ‬دودو ‪ ‬و د‪  ‬ارد‪  .‬ده‪  ‬زی‪ ‬‬ ‫اردی‪  ‬ای‪ ‬‬ ‫‪ ‬ا‬ ‫ن‪ ‬‬ ‫در‪ ‬ز ن‪ ‬‬

‫دودو ا ‪ .‬‬ ‫ه در در‬ ‫ء آن‬ ‫ر ده ا ‪.‬‬ ‫دودو‬ ‫در‬

‫دودو ‪ :‬‬ ‫ه در‬

‫‪  ‬ای‪  ‬ن‪ ‬دادن‪  ‬ار‪ ‬‬ ‫‪    ‬س‪ ‬ا م‪    ‬د‪ .‬ا ‪  ‬س‪ ‬دارای‪   ‬‬ ‫‪    ‬ه‪ ‬در ‪ ‬دودو ‪ ‬‬

‫ا ‪ .‬‬ ‫ه را‬ ‫‪ ،‬و د ی ای ا ره‬ ‫ه‬ ‫ای ا ره‬ ‫ه‪،‬‬

‫‪ ‬‬
‫‪1.​ class​ Node:‬‬
‫‪2.‬‬ ‫‪​def __init__​(​self​, data):‬‬
‫‪3.‬‬ ‫‪​ elf​.data‬‬
‫‪s‬‬ ‫‪= data‬‬
‫‪4.‬‬ ‫‪​ elf​.left‬‬
‫‪s‬‬ ‫‪= None‬‬
‫‪5.‬‬ ‫‪​ elf​.right = None‬‬
‫‪s‬‬

‫‪  .‬‬ ‫و‬ ‫ز و آ را در‬ ‫د ی آن را‬ ‫دودو‬ ‫در‬ ‫ای‬


 ‫ ر‬  ‫ا‬ .  ‫ ر‬ ‫آن‬   ‫و‬  ‫ ز‬       ‫در‬ ‫را‬ ‫ ه‬ ‫داده‬    ‫ز‬   ‫در‬    ‫در‬  ‫ ا‬   :‫ل‬

 . ‫ن داده ق ا م د‬ ‫ده از‬ ‫ان روش ز و ا‬ ‫را‬

 
root = Node(“a”)
root.left = Node(“d”)
root.right = Node (“b”)
root.right.left = Node(“c”)
 
  

 
 X ‫در‬
  
   
‫‪ ‬‬

‫‪ .‬‬ ‫را‬ ‫رت ر‬ ‫‪۲.۹‬‬

‫‪    ‬‬ ‫‪ ‬را‪   ‬ا ‪  ‬رت‪  ‬ن‪   ‬د ‪    :‬ه‪   ‬‬ ‫‪   :‬در ‪ ‬دودو ‪ ‬داده‪    ‬د‪      ‬رت‪ ‬ر‬
‫‪  ‬‬ ‫‪ ‬‬ ‫‪  ‬رت‪ ‬ر‬ ‫‪   ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ .    ‬‬ ‫‪ ‬ز ‪ ‬در ‪   ‬و‪ ‬را ‪ ‬‬ ‫‪ ‬روی‪ ‬‬ ‫ار‪ ‬ا ‪ .‬‬
‫‪ .‬‬ ‫دودو را‬ ‫در‬
‫‪ ‬‬
‫‪   ‬آن‪ ‬را‪ ‬در ‪ ‬درک‪  ‬ده‪ ‬ا ‪  .‬ض‪     ‬در ‪  ‬رت‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬را‪      ‬ل‪  ‬وع‪   ‬‬ ‫‪   :‬‬
‫‪ .‬‬ ‫)‪4 * (2-9‬‬ ‫رت ر‬ ‫دل‬ ‫ز را دار ‪ .‬ا در‬ ‫ر‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫‪  ‬ب‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪  ‬رت‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ .‬ا ‪   ‬آن‪ ‬‬ ‫‪ ) * ‬ب(‪   ‬‬ ‫ر ‪ ‬ا ‪ ‬در ‪ ‬‬
‫‪ ‬‬ ‫‪  ‬ب‪ ‬را‪  ‬ب‪     ‬دا‬ ‫‪  .‬ا ‪   ‬از‪ ‬آ ‪  ‬ا ‪ ‬‬ ‫‪ ‬را ‪   ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪ (4 ‬در‪ ‬‬ ‫‪) ‬‬
‫‪ ‬ا ‪ ‬‬ ‫‪   ‬ا ‪     ‬‬ ‫(‪   ‬‬ ‫‪) - ‬‬ ‫‪ ‬را ‪ ‬‬ ‫‪ ‬را ‪  ‬ز‪ ‬دار ‪ .‬ر ‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬
‫‪ ‬ا ‪ ‬ز ‪ ‬در ‪ 9 - 2 ‬‬ ‫‪ 2 ‬و‪  (9 ‬ا ‪  ‬د‪  .‬ا ‪ ‬‬ ‫‪   ‬و‪ ‬را ‪ ‬آن‪) ‬‬ ‫‪ ‬ز ‪ ‬در ‪  ‬ی‪ ‬‬ ‫ز ‪ ‬در ‪  ‬ا ‪   ‬‬
‫‪  ‬ب‪ ‬را‪ ‬ا ل‪  ‬ده‪ ‬و‪ ‬‬ ‫‪ ‬را ‪ ‬ر ‪ ‬را‪ ‬دار ‪    ‬ا ‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪ ‬ا ن‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫=‪   -7 ‬‬
‫ر ‪ .‬‬ ‫‪-28 = (-7)*4‬‬
‫‪ ‬‬
‫‪   ‬‬ ‫‪  ‬ای‪ ‬‬ ‫د‪         ‬از‪   ‬ا ر ‪  ‬ز‬ ‫‪ ‬در ‪ ‬‬ ‫ط‪    ‬رت‪ ‬ر‬ ‫‪ ‬‬ ‫‪ ‬آوردن‪ ‬‬ ‫ا ‪ ‬روش‪ ‬‬
‫‪   ‬ا ا‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آوردن‪  ‬ار‪   ‬ز ‪ ‬در ‪ ‬در‪  ‬ر ‪   ‬ر ‪ ‬ی‪ ‬ز ‪ ‬در ‪   ‬‬ ‫‪  :‬ای‪ ‬‬ ‫ده‪ ‬‬ ‫‪ ‬ا‬
‫‪ ‬ر ‪ ‬را‪ ‬‬ ‫‪ .‬آ ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را ‪ ‬آن‪ ‬را‪    ‬رت‪  ‬ز‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪   ‬و‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬
‫‪ ‬آن‪  ‬د‪  ‬ار‪ ‬‬ ‫‪ ،‬‬ ‫‪ .‬در‪  ‬ر ‪    ‬ار‪ ‬ر ‪ ‬ز ‪ ‬در ‪    ‬د‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪   ‬و‪ ‬را ‪ ‬ا ا‪ ‬‬ ‫روی‪ ‬‬
‫دی ا ‪  .‬‬
‫‪ .‬‬ ‫ل قا ا‬ ‫ا ا ر ‪ ،‬آن را روی در‬ ‫ن از در‬ ‫ای ا‬
‫‪ ‬‬
‫در ‪ ‬‬ ‫ار ای ر‬ ‫‪-۱‬‬
‫*(‪ ‬‬ ‫)‬ ‫هر‬
‫‪ ‬‬ ‫ار ز در‬ ‫‪- ۱.۱‬‬
‫ا ‪  .‬‬ ‫ار ‪4‬‬ ‫د‬ ‫ان ر ‪ .‬ن‬ ‫ار ‪4‬‬ ‫ه‬ ‫‪ ‬‬
‫را ‪ ‬‬ ‫ار ز در‬ ‫‪- ۲.۱‬‬
‫‪ (-‬‬ ‫)‬ ‫ز در‬ ‫هر‬ ‫‪ ‬‬
‫‪ ‬‬ ‫ز در‬ ‫‪-۱.۲.۱‬‬
‫‪ ‬‬ ‫ان‬ ‫دا ن آن‬ ‫و‬ ‫ان ر‬ ‫ار ‪2‬‬ ‫ه‬
‫را ‪ ‬‬ ‫ز در‬ ‫‪-۲.۲.۱‬‬
‫‪ ‬‬ ‫ان‬ ‫دا ن آن‬ ‫و‬ ‫ان ر‬ ‫ار ‪9‬‬ ‫ه‬ ‫‪ ‬‬
‫دا ن ‪ -7‬‬ ‫)‪ (9‬و‬ ‫را‬ ‫)‪ (2‬و ز در‬ ‫ز در‬ ‫‪ -‬روی‬ ‫ا ل‬
‫دا ن ‪ -28‬‬ ‫)‪ (-7‬و‬ ‫را‬ ‫)‪ (4‬و ز در‬ ‫ز در‬ ‫* روی‬ ‫ا ل‬
‫‪ ‬‬
‫‪ .‬‬ ‫را‬ ‫در‬ ‫ل‬ ‫ا ا ای ا ر روی در‬
‫‪  ‬‬
‫ر‪  ‬ه‪  ‬ی‪ ‬در ‪ ‬ا ‪  .‬ه‪    ‬س‪ ‬‬ ‫‪ ‬‬ ‫‪ (5   1  ) ‬‬ ‫‪     .    ‬اول‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬وع‪   ‬‬
‫اری‪  ‬ار‪  ‬ه‪ left ،‬ا ره‪  ‬ی‪   ‬ز ‪ ‬در ‪ ،  ‬و‪ right ‬ا ره‪  ‬ی‪   ‬ز ‪ ‬‬ ‫ده‪ ‬ا ‪   ‬دارای‪  data     ‬ای‪ ‬‬
‫‪ .‬‬ ‫را‬ ‫در‬
‫‪ .(7  )     ‬در‪ ‬ا ای‪   ‬‬ ‫‪  ‬ای‪   ‬‬ ‫‪  ‬وع‪    ‬د‪ .‬ا ا‪  ‬م‪ ‬و‪  ‬را ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ر‬ ‫‪ ‬‬
‫ص‪ ‬در‪ ‬‬ ‫‪   ‬آ ‪ ‬ر ‪  ‬اری‪   ‬ا ‪ .‬در‪ ‬ا ‪  ‬رت‪  ‬ار‪ 0 ‬را‪      ‬دا ‪ 8  ) ‬و‪ .(9 ‬ا ‪  ‬ر‪ ‬‬ ‫‪   ‬‬
‫‪  .‬‬ ‫ا‬
‫‪ ‬‬
‫ی‪     ‬ا ‪   ‬دو‪  ‬را ‪    ‬د‪ ‬و‪ ‬‬ ‫‪ ‬د‬ ‫ط‪     ‬‬ ‫‪  .    ‬ار‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬از‪ ‬‬ ‫‪   ‬د‬
‫‪ ‬‬ ‫ر‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪    ‬ان‪ ‬‬ ‫‪  ‬دا ‪ .(14   11  ) ‬از‪ ‬ا ‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬را‪ ‬روی‪ ‬آ ‪ ‬ا ل‪ ‬و‪ ‬‬
‫‪  .‬‬ ‫ده‬ ‫ا‬ ‫ار‬ ‫رد ز و‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬‬ ‫ر‪  ‬ده‪ ‬ا ‪ ‬و‪  ‬ا ا ‪  ‬ی‪  ‬ز‬ ‫‪  ‬ه‪ ‬ا (‪ ‬‬ ‫‪  ‬دن‪ ‬‬ ‫‪) ‬در‪ ‬وا ‪         ‬د ‪ ‬‬ ‫دو‪   ‬آ ‪ ‬‬
‫‪ .‬‬ ‫ز‬ ‫د ‪.‬ا‬ ‫در آن ا م‬
‫‪ ‬‬
‫‪  ‬د‪  ‬ار‪ ‬‬ ‫‪ ‬از‪  ‬د ‪ (/ ،  ،- ،+ ‬‬ ‫‪) ‬‬ ‫‪ .‬ا ‪  ‬ار‪ ‬ر ‪ ‬‬ ‫‪ ‬ر ‪   ‬ز ‪ ‬در ‪ ‬وار ‪   ‬‬ ‫در‪    ‬ز‬
‫‪ ‬‬ ‫‪     ‬و‪ ‬آ ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را ‪    ‬ا ا ‪  ‬ز‬ ‫‪ ‬ز ‪ ‬در ‪   ‬و‪ ‬‬ ‫‪  ‬دا ‪ .‬در‪   ‬ا ‪  ‬رت‪ ‬‬
‫‪ 15‬و ‪ .(16‬‬ ‫د)‬ ‫ا ل‬ ‫ای‬ ‫روی آ‬

‫‪1.​ def​ calc(root):‬‬


‫‪2.‬‬ ‫‪if​ root == None:‬‬
‫‪3.‬‬ ‫‪return​ 0‬‬
‫‪4.‬‬
‫‪5.‬‬ ‫‪opt = {"+": lambda x, y: x + y,‬‬
‫‪6.‬‬ ‫‪"-": lambda x, y: x - y,‬‬
‫‪7.‬‬ ‫‪"*": lambda x, y: x * y,‬‬
‫‪8.‬‬ ‫}‪"/": lambda x, y: x / y‬‬
‫‪9.‬‬ ‫\))‪return​ opt[root.data](calc(root.left), calc(root.right‬‬
‫‪10.‬‬ ‫‪​if​ root.data ​in​ opt ​else​ root.data‬‬

‫‪ ‬‬
‫ی‪ lambda     ‬ا ‪ ‬‬ ‫‪ ‬در‪ ‬د‬ ‫ط‪     ‬‬ ‫ده‪  ‬ه‪ ‬ا ‪  .‬ار‪ ‬‬ ‫ی‪ ‬ا‬ ‫‪  ‬ق‪ ‬از‪   ‬د‬ ‫در‪ 11   ‬در‪ ‬‬
‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪  ‬د ‪ ‬دو‪  ‬را ‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪ ‬را‪   ‬د ‪  .‬ا‬ ‫‪  ‬ا ‪   ‬‬ ‫‪ ‬در‪ ‬وا ‪ ‬ا ن‪ ‬‬
‫‪  .‬‬
‫‪ ‬‬
‫و د ارد‪ .‬در‪ ‬‬ ‫ای ا ا‬ ‫در‬ ‫ده از ط ی‬ ‫زی ا‬ ‫ی‪ ،‬د‬ ‫رد‬ ‫ده از ا‬ ‫ا‬
‫‪ ‬‬ ‫ا‬ ‫د‬ ‫ا‬ ‫در‬ ‫ی‬ ‫ی‬ ‫وا‬ ‫ا‬ ‫ر‬
‫‪ ‬‬ ‫د‪ .‬‬ ‫یا‬ ‫د‬
‫‪ ‬‬ ‫را‬ ‫ار ع‬ ‫‪۳.۹‬‬

‫‪ .‬‬ ‫را‬ ‫در‬ ‫ار ع گ‬ ‫ای‬ ‫‪:‬‬


‫‪  .‬‬ ‫ز را در‬ ‫ه ا ‪ .‬در‬ ‫آن را در‬ ‫ل وع‬ ‫را‬ ‫‪:‬‬

‫‪ ‬‬
‫ار ع را دارد‪ .‬‬ ‫‪ .‬گ‪F‬‬ ‫ی آن ‪2‬‬ ‫ار ع‬ ‫دودو‬ ‫در‬

‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬ار ع‪  ‬ای‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪  ‬وع‪ .    ‬روش‪ ‬‬ ‫ی‪ ‬‬ ‫ارا ‪ ‬راه‪   ‬را‪   ‬روش‪ ‬‬
‫‪  .‬‬ ‫آ‬ ‫ار‬
‫‪ ‬‬
‫‪ ‬در ‪ ،‬‬ ‫‪ ‬در ‪ ‬ا ‪ .‬ا ‪  ‬وه‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫ده‪ ‬از‪  ‬ا ا ‪  ‬ز‬ ‫راه‪ ‬را ‪  ‬ده‪  ‬زی‪ ‬ا ‪ ‬ا ر ‪ ‬ا‬
‫ر‪   ‬از‪ ‬ر ن‪      ‬گ‪  (leaf) ‬ا ‪   ‬ار ع‪ ‬آن‪ ‬‬ ‫ل‪ ‬آن‪ ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫ب‪ ‬‬ ‫‪ ‬ار ع‪    ‬ه‪ ‬را‪   ‬‬
‫‪ ‬را‪  ‬ب‪  ‬؟‪ ‬آ ‪   ‬ار ع‪   ‬‬ ‫‪   ‬ار ع‪   ‬‬ ‫‪ ‬ای‪ ‬از‪ ‬ا ر ‪   ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪ ‬‬ ‫ر‪  ‬ده‪ ‬ا ؟‪ ‬و‪ ‬ا‬
‫‪ ‬در‪ ‬آن‪  ‬ار‪ ‬دارد‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬دا ‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬‬ ‫‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫را‪ ‬در‪   ‬‬
‫د؟‪ ‬‬ ‫ت در آن ار‬ ‫ار ع گ در‬
‫‪ ‬‬
‫‪ ‬از‪ ‬‬ ‫‪ .‬ا ‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪  ‬ز‬ ‫‪    ‬ل‪    ‬دن‪ ‬در‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ‪   ‬‬ ‫وا‬
‫ت‪ ‬‬ ‫‪ ‬د ‪ ‬‬ ‫ری‪ ‬‬ ‫ده‪    ‬د‪ .‬ا ‪ ‬در‪ ‬‬ ‫ط‪   ‬ب‪.‬م‪.‬م‪ (gcd) ‬از‪ ‬ا ‪ ‬روش‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ز‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬
‫د‪ .‬‬ ‫و در ه ر ا م‬ ‫ه از ز در‬ ‫د‬ ‫دا ن‬ ‫از‬
‫‪ ‬‬
‫‪   ‬‬ ‫‪     .‬ا ‪   ‬‬ ‫‪ ‬در‪  ‬ه‪  ‬ی‪  ‬ر‪ ‬ا م‪ ‬‬ ‫ت‪ ‬در‪ ‬راه‪   ‬‬ ‫‪   ‬‬ ‫ای‪ ‬ر ن‪    ‬ده‪  ‬زی‪ ‬‬
‫‪   ‬و‪ ‬را ‪ ‬‬ ‫‪ ‬ار ع‪  ‬گ‪   ‬در‪ ‬ز ‪ ‬در ‪  ‬ی‪ ‬‬ ‫‪    ‬ه‪  ‬ر‪ ‬را‪   ‬ا س‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ار ع‪ ‬‬ ‫‪    ‬ان‪ ‬‬
‫‪ ‬ا ‪ ‬ز ‪ ‬در ‪   ‬‬ ‫‪   ‬ار ع‪ ‬آ ‪ ‬در‪ ‬در ‪  ‬ر‪ ‬ا ‪ .‬‬ ‫‪ ‬ار ع‪ ‬ز ‪ ‬در ‪    ‬ون‪ ‬‬ ‫ر‪ ‬از‪ ‬‬ ‫‪ ‬آورد؟‪ ‬‬ ‫آن‪ ‬‬
‫در آن ‪ 0‬ا ‪  .‬‬ ‫ار ع‬ ‫‪،‬‬ ‫ه‬
‫‪ ‬‬
‫‪ ‬و‪ ‬‬ ‫‪  ‬ای‪ ‬ز ‪ ‬در ‪   ‬و‪ ‬را ‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ت‪ ‬ز ‪ ‬در ‪   ‬در‪  ‬ه‪  ‬ر‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ای‪ ‬‬
‫‪ ‬ا ‪ ‬رو ‪ ‬از‪ ‬ر ‪ ‬در ‪ ،‬‬ ‫‪  ‬د‪   .‬ا ای‪  ‬ز‬ ‫‪ ‬ار ع‪  ‬گ‪   ‬در‪ ‬در ‪  ‬ر‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫‪ ‬وا ‪   ‬آن‪ ‬ا‬
‫‪  ‬ای‪ ‬‬ ‫‪    ‬د‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫ت‪  ‬ای‪ ‬ز ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪   ‬ز ‪ ‬در ‪ ،‬‬ ‫ا ا ‪   ‬ز ‪ ‬در ‪     ‬ر ‪    .‬ز‬
‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫ت‪  ‬ای‪ ‬ز ‪ ‬در ‪  ‬ی‪   ‬و‪ ‬را ‪ ‬ر ‪ ،‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪    ‬زد‪ .‬‬ ‫ز ‪ ‬در ‪ ‬‬
‫د ‪ .‬‬
‫‪ ‬‬
‫‪ ،‬‬ ‫‪ ‬در ‪ ‬دارای‪  n ‬ه‪ ‬‬ ‫ه ‪ .    ‬‬ ‫‪   ‬رود‪ ‬و‪    ‬ه‪   ‬را‪    ‬ر‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬از‪ ‬ر ‪   ‬‬ ‫ا ‪ ‬‬
‫‪  .‬‬ ‫ا ا ر )‪O(n‬‬
‫‪ ‬‬
‫‪ .‬‬ ‫ر‬ ‫در‬ ‫لا ا‬ ‫ا ر را روی‬ ‫وا‬ ‫در‬
‫‪ ‬‬
‫‪  ‬ن‪ ‬ا ر ‪ ‬آن‪ ‬را‪ ‬‬ ‫ری‪ ‬ا ‪ ‬و ‪  ‬ای‪ ‬وا‬ ‫ر‪  ‬ه‪ (Node) ‬ا‬ ‫‪ ‬‬ ‫‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬ا ر ‪ .    ‬‬
‫‪ .(1  ) ‬ا ‪ ‬‬ ‫‪  ‬ای‪   ‬در‪   ‬‬ ‫‪  .‬م‪ ‬و‪  ‬را ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ر ‪  ‬ز‬ ‫‪  ‬وع‪   ‬‬ ‫‪ ‬آور ‪ .‬‬
‫‪ ،‬ا ‪  ‬ط‪   ‬‬ ‫‪    ‬ه‪  ‬ا ا ‪  ‬ز‬ ‫‪  ‬دا ‪ 9  ) ‬و‪   .(10 ‬‬ ‫‪  ،‬ار‪ -1 ‬را‪ ‬‬ ‫ر ‪ ‬ز ‪ ‬در ‪ Null ‬‬
‫‪  ‬ر ‪       ‬آ ‪  ‬ه‪ ‬ر ‪ ‬ز ‪ ‬‬ ‫‪ .‬‬ ‫‪ Null ‬‬ ‫‪ ‬ا ‪   ‬ر ‪ ‬در ‪ ‬ا‬ ‫‪ ‬ا ‪ ‬ا ا‪  ‬د‪ ‬و‪ ‬آن‪ ‬‬ ‫ر‪ ‬‬
‫‪  ‬دا ‪ 11  ) ‬و‪ ‬‬ ‫‪ ‬و‪ ‬در ‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬ار ع‪  ‬گ‪ ‬در‪ ‬ا ‪ ‬ز ‪ ‬در ‪   0 ‬‬ ‫در ‪    ‬گ‪ ‬ا ‪ .‬در‪ ‬ا ‪  ‬رت‪ ‬‬
‫‪  .(12‬‬
 
 ‫ ای‬ ‫ گ‬ ‫ار ع‬      ‫ا‬ ‫در‬ .‫دارد‬   ‫ ای‬ ‫ز دی‬     ‫ ز‬ ‫و‬  ‫ا‬ ‫ ده‬ (14 ‫و‬ 13  )   ‫ ی‬   ‫دو‬
       .      ‫را‬  ‫ ز‬ ‫ ی‬  ‫ ا ا‬         .        ‫و‬  ‫را‬  ‫در‬  ‫ز‬
   ‫را‬   ‫و‬  ‫ا ا‬   ‫ ی‬        ‫وا‬     ،     ‫ا‬ ‫ گ‬   ‫ار ع‬    ‫وا‬    ‫ر‬  ‫ا‬
 . ‫دا‬
 ‫ ار‬        ‫ ر‬ ‫در‬ .     ‫را‬ ‫و‬    ‫در‬  ‫ز‬  ٓ‫ا‬        ‫ ر‬  ‫ ز‬  ‫ ا ا‬ ‫از‬    ‫ا‬
 ‫در‬ ‫آن‬  ‫ا‬       ‫در‬  ‫در‬  ‫ز‬ ‫در‬ ‫ گ‬ ‫ار ع‬   ‫ ان‬   ‫را‬ (    ‫ ار‬ ‫ ر ی‬  ) 
 .‫د‬
 

1. ​import​ sys
2. ​class​ Node:
3. def​ __init__(self, value):
4. self.value = value
5. self.right = None
6. self.left = None
7.
8. ​def​ findMinLeaf(root):
9. if​ ​not​ root:
10. return -1
11. if​ ​not​ root.left ​and​ not root.right:
12. return​ 0
13. return​ min(findMinLeaf(root.left) ​if​ root.left\
14. ​else​ sys.maxint,
15. findMinLeaf(root.right) ​if​ root.right\
16. ​else​ sys.maxint) + 1

 .        ‫را‬       ‫از‬        ‫ا‬ ‫آن‬    ‫ا‬ ‫ ای‬     ‫روش‬ ‫ده‬ ‫ ا‬ ‫ل‬ ‫ا‬


 ‫و‬  ‫ا‬   ‫ار ع‬    ‫ ر‬   ‫آن‬        ‫او‬ ‫آ ه‬ ،    ‫را‬  ‫در‬       ‫ رت‬    ‫ا‬  ‫در‬
  . ‫دا‬ ‫ا‬ ‫در‬ ‫ز‬ ‫در‬
 
 ‫را‬         ‫ن‬  .    ‫دوم‬ ‫روش‬ ‫ زی‬ ‫ ده‬   ‫ وع‬    ‫دا‬   ‫ه‬       ‫ ر‬ ‫در‬
 ‫آن‬       . ‫د‬     ‫را‬   ‫از‬        ‫ا‬ ‫در‬ ،‫ م‬  ‫ا‬ ‫از‬ ‫ی‬  ‫ ای‬ . ‫د‬   
   ‫در‬      ‫وا‬ ‫در‬ .‫ د‬   ‫ ار‬   ‫در‬    ‫ا‬ ‫ ه‬ ‫ه‬  ‫آن‬ ‫در‬     ،  ‫در‬   ‫ ه‬ ‫ اه‬      ‫ا‬
   ‫ی‬ ‫ ز‬    ‫و‬ .‫ د‬    ‫ا‬         0   ‫آن‬   ‫ اه‬    ‫ر‬ ‫ ه‬ ,6   ‫در‬   . ‫د‬   ‫ار‬
  ‫او‬   .(14   11 ‫ ی‬  )   ‫ وه‬   ‫ ه‬     ‫ د‬    ‫ ا‬  ٓ‫ا‬   ،     ‫ا‬    ٓ‫ا‬   ‫را‬ ‫ه‬
 ‫روش‬    ‫ا ر‬ ‫ زی‬ ‫ ده‬  ‫ز‬     .(10 ‫و‬ 9  )  ‫در‬ ‫ی‬  ‫ار ع‬      ‫ا‬  ‫ ا‬  ‫ د‬ ‫ه‬    ‫ای‬ ‫ه‬
  . ‫د‬ ‫ن‬ ‫را‬ ‫ی‬
 

1. ​from​ collections ​import​ deque


2.​ def​ findMinLeaf(root):
3. if​ root == None:
4. return​ -1
5.
6. q = deque([(root, 0)])
7.
8. while​ q:
9. a, level = q.popleft()
10. if​ not (a.left ​or​ a.right):
11. return​ level
12. if​ a.left:
13. q.append((a.left, level+1))
14. if​ a.right:
15. q.append((a.right, level+1))

 
 ‫ ار‬     ‫را‬ ‫وی‬   ، ‫دار‬ ‫را‬ ‫آن‬ ‫ زی‬ ‫ ده‬  ‫ ا‬ ‫و‬  ‫ا‬ ‫د ه‬ ‫را‬       ‫ ی‬ ‫روش‬    ‫ا‬ 

   !‫ا داد‬
‫‪ ‬‬

‫‪ ‬‬

‫ن )‪ (Dictionary‬‬ ‫ی در‬ ‫‪ ۱.۱۰‬د‬

‫‪ ‬‬ ‫ری‪ ‬از‪ ‬‬ ‫‪    ‬د‪ ‬و‪ ‬در‪   ‬‬ ‫ی‪    ‬م‪  ‬ول‪ ‬در ‪  ‬زی‪   (Hashtable) ‬‬ ‫ن‪ ‬داده‪ ‬د‬

‫‪   ‬ا س‪  ‬م‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫اری‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ان‪ ‬را‪ ‬در‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪  ‬ا ‪ ‬‬ ‫ر د‪ ‬دارد‪ .‬‬

‫‪ ‬آن‪    ‬رت‪   ‬زوج‪ ‬‬ ‫‪  ‬و‪ ‬‬ ‫‪ ‬راه‪ ‬ا ‪   .‬‬ ‫ی‪ ‬‬ ‫ن‪  ‬د‬ ‫‪ ،‬‬ ‫‪ ‬آن‪ ‬د ‪ ‬‬ ‫‪   ‬‬

‫ی‪  ‬را‪ ‬‬ ‫ن‪ ‬داده‪ ‬د‬ ‫(‪ ،‬‬ ‫‪) ‬‬ ‫‪  ‬م‪ ‬‬ ‫اری‪    ‬د‪   .‬در‬ ‫ن‪ ‬داده‪ ‬‬ ‫‪  ،‬ار(‪ ‬در‪ ‬ا ‪ ‬‬ ‫)‬

‫‪   ‬داده‪ ‬‬ ‫‪ ‬ا ‪  ‬ر‪ ‬را‪  ‬ون‪ ‬‬ ‫ی‪ ‬‬ ‫‪   ‬د ‪   ‬د‬ ‫‪  ‬دا ‪  .‬ا‪ ‬‬ ‫‪ ) ‬ار(‪ ‬آن‪ ‬را‪ ‬‬

‫د ‪  .‬‬ ‫‪ ،‬ری ا م‬

‫‪ .‬‬ ‫‪ -‬ار‪   ‬‬ ‫‪  ‬ای‪ ‬زوج‪  ‬ی‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ذ ه‪ ‬و‪  ‬ز‬ ‫ی‪    ‬رت‪   ‬‬ ‫ن‪ ‬داده‪ ‬د‬

‫‪ (key) ‬‬ ‫ت‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬و‪  ‬ار‪ ‬را‪   ‬آن‪   ‬د ‪  .‬ای‪  ‬ز‬ ‫ی‪   ‬‬ ‫ای‪ ‬ذ ه‪   ‬زوج‪ ‬در‪ ‬د‬

‫دا ‪ .‬‬ ‫آن را‬ ‫ار‬ ‫ی‬ ‫ود‬ ‫را‬ ‫رد‬

‫‪ ‬‬

‫ن‪ ‬‬ ‫ی در‬ ‫ه ر د‬
‫‪ ‬‬
‫‪h = {} ‬‬ ‫ی‪ ‬‬ ‫د‬

‫‪h = {key1: value1, key2: value2, key3: value3} ‬‬ ‫ادی‪  ‬زوج‪ ‬‬ ‫ی‪    ‬اه‪ ‬‬ ‫‪  ‬د‬
‫‪ -‬ار ) ل ای زوج(‪ ‬‬

‫‪h[key] = value ‬‬ ‫ار‪ ‬‬ ‫و‬ ‫زوج‬ ‫دن‬ ‫ا‬

‫‪value = h[key] ‬‬ ‫‪ ‬‬ ‫ار دا‬ ‫ز‬

‫‪h.pop(key) ‬‬ ‫ی‪ ‬‬ ‫‪ key‬از د‬ ‫ف‬


key in h   ‫ی‬ ‫ د‬ ‫ در‬ key      ‫ زوج‬ ‫ و د‬  ‫وار‬
 (False True )

for k in h:   ‫ی‬ ‫د‬   ‫ م‬ ‫ روی‬     ‫ار‬


...   ‫روش اول‬

for k, v in h.items():   ‫ی‬ ‫د‬   ‫ م‬ ‫ روی‬     ‫ار‬


...   ‫روش دوم‬

h.keys()   ‫ی‬ ‫د‬ ‫ی‬ ‫م‬

k.values()   ‫ی‬ ‫د‬ ‫د‬ ‫م‬

 
 
 
 
   
   (Heap) ‫ در‬.۱۱
‫ن )‪ (Heap‬‬ ‫در‬ ‫‪ ۱.۱۱‬در‬

‫‪ ‬و ه‪    ‬ار‪   ‬‬ ‫‪   ‬در ‪ ‬دودو ‪ ‬ا ‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دو‪  ‬ع‪ ‬دارد‪ .‬در ‪ ‬‬ ‫ن‪ ‬داده‪ ‬در ‪ ‬‬

‫‪   ‬در ‪ ‬دودو ‪ ‬ا ‪    ‬ار‪    ‬ه‪ ‬‬ ‫‪ ‬‬ ‫ر‪ ‬در ‪ ‬‬ ‫‪ ‬ا ‪ .‬‬ ‫ه‪  ‬ر‪ ‬از‪  ‬ه‪  ‬ی‪  ‬ز ‪ ‬‬

‫‪ ‬‬ ‫‪    ‬ز‪   ‬‬ ‫ص‪ ‬ز‬ ‫ن‪ ‬داده‪  ‬ر د ی‪ ‬ز دی‪ ‬دارد‪   .‬‬ ‫ر‪ ‬از‪  ‬ه‪  ‬ی‪  ‬ز ‪  ‬ر ‪ ‬ا ‪ .‬ا ‪ ‬‬

‫دار ‪ .‬‬ ‫وز‬ ‫ی داده‬ ‫ای‬ ‫ار‬

‫‪ ‬‬

‫ن‪ ‬‬ ‫در‬ ‫ه ر در‬


‫‪ ‬‬
‫‪heap = [] ‬‬ ‫)‪ (heap‬‬ ‫در‬ ‫ا ی‬

‫‪heap = heapify([value1, value2, ...]) ‬‬ ‫د او ‪ ‬‬ ‫در‬ ‫ا د‬

‫‪heappush(heap, value) ‬‬ ‫‪ ‬‬ ‫ا ودن‬

‫‪value = heappop(heap) ‬‬ ‫‪ ‬‬ ‫از‬ ‫دا‬


‫‪ ‬‬
‫‪ ‬‬ ‫‪ .‬‬ ‫ا‬ ‫را‬ ‫ی‬ ‫ژول ‪ heapq‬و‬ ‫ده از م‬ ‫ای ا‬ ‫ا‬
‫‪ ‬‬ ‫‪-k‬‬ ‫زی‬ ‫‪۲.۱۱‬‬

‫‪ ‬آن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪   K ‬از‪ ‬‬ ‫ی‪ ‬از‪ ‬ا ‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬داده‪  ‬ه‪ ‬ا ‪   ‬ا ‪ ‬‬ ‫‪-k ‬‬ ‫‪   :‬‬
‫‪ .‬‬ ‫را‬ ‫ا‬ ‫ای‬ ‫دارد‪.‬‬
‫‪ ‬‬
‫‪ ‬آن‪  ‬ا ‪ ‬‬ ‫‪ ‬ا ‪ ‬ز ا‪   ‬‬ ‫‪-3 ‬‬ ‫‪   [1 ,3 ,4 ,2 ,6 ,5] ‬‬ ‫‪ ‬را‪      ‬ل‪  ‬وع‪ .    ‬‬ ‫‪   :‬‬
‫‪ ‬‬ ‫‪ 1 ‬‬ ‫‪ ‬دارد‪    .‬ار‪   2 ‬در‪   ‬ا‬ ‫‪ [1 ,2 ,3 ,4 ,5 ,6] ‬‬ ‫‪  ‬ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آن‪ ‬در‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬
‫‪ ‬از‪   3 ‬‬ ‫‪ ‬‬ ‫ی ‪  ‬ز‪   ‬‬ ‫‪   ،‬‬ ‫‪  ‬دن‪ ‬‬ ‫‪ ‬ا ‪    .‬رت‪ ‬د ‪  ‬ای‪ ‬‬ ‫‪  3 ‬ار‪ ‬‬ ‫‪ ‬در‪ ‬ا‬ ‫در‬
‫ارد‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫ده‪  ‬د‪ .‬ا ‪ ‬رو ‪ ‬‬ ‫‪ ‬ا‬ ‫‪  ‬زی‪ ‬‬ ‫‪    ‬ان‪ ‬از‪ ‬ا ر ‪  ‬ی‪ ‬‬ ‫‪  ‬دن‪ ‬ا ‪ ‬‬ ‫‪ ‬ا ‪    ‬ای‪ ‬‬
‫ی‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪    ‬ان‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪   ‬ا‬ ‫‪ O(n*log(n)) ‬دار ‪ .‬ا ‪   ‬‬ ‫‪ ‬‬
‫د‪  .‬‬
‫‪ ‬‬
‫‪    ‬ل‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬زی‪ ‬ز ‪ ‬‬ ‫‪  n   ،‬ر‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬در‬ ‫‪ k ‬از‪ ‬‬ ‫ی‪ ‬در‪ ‬‬ ‫در‪ ‬وا ‪   ‬ا ‪ ‬د ‪     ‬‬
‫‪ ‬د ‪ ‬‬ ‫‪   .‬ا‬ ‫‪   O(n*k*log(k)) ‬‬ ‫‪ ‬ا ر‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪    2k+1‬ا ‪ ‬‬
‫‪   ‬آن‪ ‬دار ‪ .‬‬ ‫‪  ‬دش‪ ‬و‪ k ‬‬ ‫‪ ،‬‬ ‫‪  ‬دن‪ k+1 ‬‬ ‫‪    ‬ز‪   ‬‬ ‫‪ ‬‬ ‫‪    ‬ای‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬
‫‪   ‬‬ ‫‪ ‬اول‪ ‬‬ ‫‪  ‬دن‪ k+1 ‬‬ ‫‪  ‬ار‪    ‬د‪    ‬ز‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اری‪   ‬در‪ ‬‬ ‫‪ ‬ا ‪  ‬ای‪ ‬‬
‫‪ ‬در ‪ ‬‬ ‫‪  ‬زی‪ ‬آ ‪ ‬در‪ ‬‬ ‫‪ ‬ا ‪     ‬‬ ‫‪ ‬اول‪ ‬در‪   ‬ا ‪ k+1 ‬‬ ‫‪ ‬‬ ‫‪-k ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   .‬ا ‪  ‬ر‪ ‬‬
‫د‪ .‬‬ ‫ار‬
‫‪ ‬‬
‫‪    ‬ار‪ ‬‬ ‫‪  ‬اری‪   ‬در‪ ‬‬ ‫‪    ‬ای‪ ‬‬ ‫‪  .‬ا ‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫ن‪-k ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آن‪ ‬ا ‪   ‬‬
‫‪      ‬‬ ‫‪ ‬را‪ ‬را‪    ‬اه‪  ‬دش‪ ‬‬ ‫‪ ‬اول‪ ‬‬ ‫‪   ‬از‪ ‬‬ ‫‪ :‬در‪ ‬وا ‪ k ‬‬ ‫‪ ‬ا ‪  ‬ر‪ ‬را‪  ‬ار‪   ‬‬ ‫‪  ‬د‪ ‬‬
‫‪ .‬‬ ‫))‪O(n*k*log(k‬‬ ‫زی ا ا ر‬ ‫د‪.‬‬ ‫ار‬ ‫ا‬ ‫در‬ ‫ار در‬
‫‪ ‬‬
‫‪ ‬‬ ‫ل‪ ‬ا ‪ ‬روش‪ ‬آن‪ ‬ا ‪      ‬ر‪ k   ‬‬ ‫‪ .‬ا‬ ‫‪   ‬‬ ‫ا ‪   ‬ا ‪ ‬ا ‪ ‬ا ا ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ا ‪ ‬ا ر ‪ ‬‬
‫‪ ‬‬ ‫‪   ‬آن‪ ‬ا‬ ‫‪ ‬‬ ‫‪  ‬ه‪  ‬ف‪    ‬د‪ ‬و‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬اول‪ ‬از‪ ‬‬ ‫‪    ‬ر‪   ‬‬ ‫‪ .    ‬در‪ ‬‬ ‫را‪ ‬از‪   ‬‬
‫‪  ‬زی‪   ‬آن‪ .‬ا ‪  ‬ن‪  ‬ری‪ ‬ا ‪ ‬‬ ‫‪ ‬دار ‪   ‬‬ ‫‪ k   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ا ‪    ‬ر‪    ‬ز‪   ‬دا‬ ‫‪  ‬د‪ .‬‬
‫‪  .‬‬ ‫ا در ا‬ ‫در‬
‫‪ ‬‬
‫ی‪   ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ر ‪ ‬در ‪ ‬‬ ‫‪    ‬دا‬ ‫‪    ‬ز ‪ .‬‬ ‫‪ ‬اول‪ ‬‬ ‫‪ k+1   ‬‬ ‫ای‪ ‬ا ‪  ‬ر‪ ‬ا ا‪   ‬در ‪ ‬‬
‫‪ k+1 ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪    ‬ار ‪ .‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آور ‪ ‬و‪ ‬آن‪ ‬در‪ ‬‬ ‫‪   ‬درج‪  ‬د‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫ا‬
‫‪ ‬دو ره‪ ‬در‪ ‬ر ‪  ‬ار‪    ‬د‪ .‬ا ‪ ‬‬ ‫‪    ‬ار‪ ‬‬ ‫‪   .‬ا ‪  ‬ر‪ ‬در ‪  ‬وز‪    ‬د‪ ‬و‪ ‬‬ ‫‪ ‬درج‪   ‬‬ ‫را‪ ‬در‪ ‬در ‪ ‬‬
‫‪ ‬را‪   ‬‬ ‫‪ ‬آ‬ ‫‪ ‬در‪ k+1 ‬‬ ‫‪ ‬و‪ ‬ا ودن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬دا‬ ‫‪  ‬ار‪  ‬د‪ .‬‬ ‫‪   ‬‬ ‫‪ ‬ا‬ ‫ار‪   ‬در‪ ‬‬
‫د ‪  .‬‬ ‫ادا‬ ‫ر ن ا ی‬
‫‪ ‬‬
‫‪ ‬ا م‪    ‬د‪ ،‬و‪     ‬از‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ازه‪  k ‬ا ‪ O(log(k)) ‬‬ ‫‪ ‬در‪ ‬‬ ‫از‪ ‬آ ‪    ‬ای‪ ‬درج‪   ‬‬
‫‪ .‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪   O(n*log(k)) ‬‬ ‫‪ ‬‬ ‫‪ ‬درج‪ ‬و‪ ‬از‪ ‬آن‪  ‬ف‪    ‬د‪ ،‬آ ه‪ ‬‬ ‫ر‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫د‪ .‬‬ ‫ا‬ ‫زی‬ ‫از‬ ‫آ ه ا ا ر‬ ‫از ‪n‬‬ ‫ر‬ ‫‪k‬‬
‫‪ ‬‬
‫ز ‪ ‬‬ ‫در‬ ‫‪ .‬ا‬ ‫ا ا‬ ‫آن را روی ل‬ ‫ا ر‬ ‫د و در‬ ‫ه‬ ‫از‬ ‫ای ا‬
‫ه ا ‪  .‬‬ ‫ن داده‬
‫‪ ‬‬ ‫ار دادن‬ ‫ه را‬ ‫و‬ ‫^د ل‬ ‫را‬ ‫در‬ ‫ای درج‬ ‫در‬ ‫ورودی‪ .‬ا‬ ‫ا ر روی‬ ‫ا ای د‬
‫د ‪ .‬‬ ‫ن‬ ‫را‬ ‫ر‬ ‫د و‬ ‫ن‬ ‫‪.‬‬ ‫ز آن‬

‫‪ ‬‬
‫‪ .‬‬ ‫ن‬ ‫ا ر ا‬ ‫دن ا ا روی ل از در‬ ‫در‬
‫‪ ‬‬
‫‪ ‬وارد‪   ‬‬ ‫‪  ‬زم‪ ‬ا ‪ ‬را‪ ‬در‪ ‬‬ ‫‪    ‬ای‪ ‬ا د‪   ‬در ‪ ‬‬ ‫‪ .‬ا ا‪  ‬ژو‬ ‫‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬ا ر ‪   ‬‬
‫‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .(3  ) ‬در‪ ‬ا ای‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ی‪ ‬‬ ‫‪      ‬را‬ ‫‪ .(1  ) ‬‬
‫‪ k ‬‬ ‫‪   ‬ا ازه‪     k ‬در ‪ ‬‬ ‫وی‪ ‬در‪ ‬‬ ‫‪ ‬ا ا‪   ‬‬ ‫‪  ‬ر‪  ‬ا ‪  ‬د‪ .(4  ) ‬‬ ‫اری‪ ‬در ‪ ‬‬ ‫‪  ‬ای‪ ‬‬
‫‪ ‬دار ‪ ‬و‪ ‬در‪ ‬‬ ‫‪ ‬را‪ ‬از‪ ‬آن‪ ‬‬ ‫‪ ‬در ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪    ‬ر‪ ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪ .(6   5  ) ‬‬ ‫ی‪ ‬ا د‪   ‬‬
‫ط‪ 10 ‬و‪11 ‬‬ ‫‪ ‬درج‪  ‬ه‪ ‬ا ‪ ‬را‪ ‬در‪ ‬آن‪ ‬درج‪)     ‬‬ ‫‪  ‬ی‪   ‬در‪ ‬در ‪ ‬‬ ‫‪    ‬ار ‪ .‬آ ه‪ ‬‬ ‫‪ i ‬ام‪ ‬‬
‫ن‪ ‬‬ ‫‪ ‬را‪ ‬در‪  ‬ی‪ ‬در‬ ‫‪   ‬‬ ‫‪  ‬د‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬در ‪ ‬‬ ‫‪  ‬و ‪ .(12  ) ‬ز‬ ‫‪  ‬ی‪ ‬‬ ‫(‪ .‬آ ه‪  ‬اغ‪ ‬‬
‫‪ ‬‬ ‫ه ا ‪  .‬‬
 
 
1.​ from​ heapq ​import​ heappush, heappop
2.
3.​ def​ sort_k_unsorted_array(arr, k):
4. knext = []
5. ​for​ _ ​in​ range(min(k+1, len(arr))):
6. heappush(knext, arr[_])
7. i = 0
8. ​while​ knext:
9. arr[i] = heappop(knext)
10. ​if​ i < len(arr)-k-1:
11. heappush(knext, arr[i + k + 1])
12. i += 1
13. ​return​ arr
 
 
 
‫‪ ‬‬ ‫ه را‬ ‫ی‬ ‫‪۳.۱۱‬‬

‫دا ‪ .‬‬ ‫ل ‪ n‬را‬ ‫ه‬ ‫و‬ ‫ه را در‬ ‫‪k‬‬ ‫ای‬ ‫‪:‬‬


‫‪ ‬‬
‫‪ :‬‬ ‫ه ز را دا‬ ‫‪.‬ا‬ ‫ل وع‬ ‫را‬ ‫‪:‬‬
‫‪    ‬ل‪ 10 ‬و‪    ‬رت‪ ,10 ,12 ,13 ,15] ‬‬ ‫‪ ‬آ ‪   ‬‬ ‫‪ ‬‬ ‫]‪ [1 ,5 ,9 ,12 ,13‬و‪ [3 ,7] ‬و‪ [8 ,10 ,15] ‬آ ه‪ ‬‬
‫د‪ .‬‬ ‫‪ [1 ,3 ,5 ,7 ,8 ,9‬ا‬
‫‪ ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪     ‬و‬ ‫‪ ‬‬ ‫‪   ‬را‪  ‬ون‪ ‬در‪   ‬‬ ‫‪ ‬آن‪ ‬ا ‪   ‬‬ ‫‪  ‬ای‪ ‬ا ‪ ‬‬ ‫‪ ‬راه‪   ‬‬
‫‪ .‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪   O(n*log(n)) ‬‬ ‫‪ ‬‬ ‫‪ .‬‬ ‫‪ ‬د ‪ ‬‬ ‫‪   ‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫د‪ ‬آ ه‪ ‬را‪ ‬‬
‫د ‪  .‬‬ ‫ا م‬ ‫را‬ ‫ا‬ ‫و‬ ‫ده‬ ‫ا‬ ‫دن‬ ‫از‬ ‫ل ا ا ر آن ا‬ ‫ا‬
‫‪ ‬‬
‫ن‪ ‬‬ ‫‪ ‬را‪ ‬در‪  ‬ی‪ ‬در‬ ‫ده‪           ‬‬ ‫‪   ‬ا‬ ‫‪  ‬دن‪ ‬‬ ‫‪ ‬‬ ‫‪      ‬ا ‪ ‬از‪ ‬‬ ‫ای‪   ‬راه‪   ‬‬
‫‪ .‬در‪  ‬ل‪ ،  ‬‬ ‫‪     ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬او ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ه‪   ‬‬ ‫‪   .‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ‪  .‬ای‪ ‬‬ ‫‪  ‬د ‪ ‬‬ ‫‪  ‬ار‪   ‬‬ ‫‪ ‬اول‪ ‬ا ‪ ‬ز ا‪ ‬‬ ‫ا ‪  ‬ار‪ 1 ‬ا ‪   ‬از‪ ‬‬
‫‪   .‬د ل‪  ‬دن‪ ‬ا ‪  ‬ل‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪ ‬د ‪ ‬در‪   ‬‬ ‫‪ ‬اول‪ ‬‬ ‫‪ ‬اول‪    ‬اه‪ ‬‬ ‫‪ ‬دوم‪ ‬از‪ ‬‬ ‫‪  ‬ی‪   ‬‬
‫ر ‪ .‬‬ ‫ا ر‬
‫‪ ‬‬
‫‪ ‬درج‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬را‪     ‬و‪ ‬در‪ ‬ا ی‪ ‬‬ ‫ده‪  ‬ه‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪    ‬ر‪ ‬‬ ‫در‪   ‬ا ر ‪ ‬‬
‫‪  .‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬ز ‪ ‬‬ ‫‪   ‬در ‪  ‬ر‪ .    ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ر ‪  ‬ح‪  ‬ه‪ ‬را‪ ‬روی‪    ‬ل‪ ‬ا ا‪     ‬‬ ‫در‪   ‬‬
‫د ‪ .‬‬ ‫ن‬ ‫از ا ا ا را‬
‫‪ ‬‬
‫‪ ‬‬ ‫و از‬ ‫ا ای ا ر را از‬ ‫د ‪ .‬ا‬ ‫ن‬ ‫را‬ ‫ه از‬ ‫ده‬ ‫ا‬ ‫^ او‬ ‫ل روی ا ر ‪.‬‬ ‫ا ای‬
‫‪  .‬‬ ‫د ل‬ ‫را‬
‫‪ ‬‬
‫‪  .‬‬ ‫ر‬ ‫ت ا ر در‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬از‪ ‬‬ ‫ده‪  ‬ه‪ ‬در‪ ‬‬ ‫‪ ‬ا‬ ‫‪       ‬‬ ‫‪   ‬دار ‪   ‬از‪ k ‬‬ ‫‪ ‬از‪ ‬‬ ‫ای‪  ‬ده‪  ‬زی‪ ‬ا ر ‪  ‬ق‪  ‬ز‪     ‬‬
‫‪ ‬و‪ (۲) ‬آن‪ ‬را‪   ‬از‪ ‬‬ ‫‪   ‬ا ‪  k ‬ار‪ ‬را‪  ‬ا‪ ‬‬ ‫‪    ‬د‪ .‬در‪ ‬ا ‪ ‬ا ر ‪    ‬ر‪  (۱) ‬ار‪ ‬‬ ‫‪ ‬ا ‪ ‬‬
‫ب‪   ‬را‪ ‬در‪ ‬‬ ‫‪ ‬از‪ ‬آن‪ ‬ا‬ ‫‪    ‬ار‪ ‬‬ ‫ده‪  ‬ه‪ ‬از‪ ‬‬ ‫‪ ،‬و‪  (۳) ‬ار‪  ‬ی‪ ‬ا‬ ‫‪    ‬ف‪ ‬‬ ‫‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫ا‬
‫‪ .‬‬ ‫درج‬ ‫د‬
‫‪ ‬‬
‫‪  ‬وز‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫‪   O(k) ‬‬ ‫‪ ‬‬ ‫‪    ‬ل‪ k ‬دارای‪ ‬‬ ‫‪     ‬‬ ‫ا‪  ‬دن‪ ‬‬
‫د‪  .‬‬ ‫)‪ O(n*k‬ا‬ ‫‪ ،‬ا ا ر دارای‬ ‫را‬ ‫ار‬ ‫ر‬ ‫دو‬
‫‪ ‬‬
‫‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪  ‬ار ‪    ‬ا ‪   ‬از‪ ‬‬ ‫‪      ‬ار‪ ‬‬ ‫ی‪ ‬‬ ‫‪ k ‬‬ ‫‪ ‬ا ‪ ‬ا ‪   ‬ا ‪ ‬در‪ ‬‬ ‫وا‬
‫‪ ‬‬ ‫‪    ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ده‪ ‬ا ‪  .‬ا ‪  ‬اه‪    ‬د ‪ ،‬ا‬ ‫ط‪    ‬ام‪   ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫را‬
‫اری د‪  .‬‬ ‫در آن‬ ‫وا‬ ‫آن ا‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫‪   ‬ر ‪   ‬در ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دار ‪    ‬ا ‪ ‬‬ ‫‪  ‬ز‪     ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬
‫‪    ،‬ارد‪ ‬ذ ‪ ‬را‪ ‬‬ ‫‪    ‬ی‪   ‬در ‪ ‬‬ ‫ده‪ ‬از‪   ‬در ‪ ‬‬ ‫‪   ‬ا ر ‪ ‬در‪  ‬رت‪ ‬ا‬ ‫‪ ‬‬ ‫‪   .‬از‪ ‬‬
‫‪ :‬‬ ‫ا ازه ‪ k‬دآوری‬ ‫در‬ ‫در رد‬
‫‪ .‬‬ ‫)‪O(1‬‬ ‫‪-۱‬‬
‫‪ .‬‬ ‫))‪O(log(k‬‬ ‫و ز زی در‬ ‫ف‬ ‫‪-۲‬‬
‫‪ .‬‬ ‫))‪O(log(k‬‬ ‫و ز زی در‬ ‫دن‬ ‫ا‬ ‫‪-۳‬‬
‫‪ ‬‬
‫‪   ‬را‪  ‬ا‪ .    ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ق‪   ‬ا ‪  :‬ر‪ ‬‬ ‫ت‪ ‬در‪ ‬ار ط‪   ‬در ‪ ‬‬ ‫در‪ ‬ا ر ‪  ‬ق‪ ‬ا ‪ ‬ا‬
‫‪ ‬آن‪)) ‬‬ ‫‪    ‬ف‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬از‪ ‬‬ ‫‪   ‬ا ‪ ‬‬ ‫‪ .‬‬ ‫‪   O(1) ‬‬ ‫‪ ‬دارای‪ ‬‬ ‫ا ‪  ‬ر‪ ‬در‪ ‬در ‪ ‬‬
‫‪   ‬‬ ‫‪   ‬ا‬ ‫‪ ‬‬ ‫ده‪  ‬د ‪ ‬را‪   ‬‬ ‫ی‪ ‬از‪ ‬آن‪ ‬را‪ ‬ا‬ ‫‪   ‬‬ ‫‪  ‬ی‪ ‬از‪ ‬‬ ‫‪   ‬‬ ‫‪ .‬‬ ‫‪   O(log(k‬‬
‫‪ ‬ا ‪ ‬ا ر ‪ ‬در‪  ‬رت‪ ‬‬ ‫‪   ‬ا م‪  ‬د‪  .‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪  ‬ر‪    ‬ای‪ n   ‬‬ ‫‪ ‬آن‪   log(k) ‬‬ ‫‪ ‬‬
‫‪ ‬اول‪ ‬ا ‪ ‬ا ر ‪ ‬ا ‪   ‬از‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬آن‪ ‬‬ ‫‪   ‬‬ ‫‪ O(n*log(k)) ‬‬ ‫ده‪ ‬از‪ ‬در ‪ ‬‬ ‫ا‬
‫‪ .‬‬ ‫ده‬ ‫دی ا‬
‫‪ ‬‬
‫‪  ‬ی‪ ‬داده‪  ‬ه‪  ‬ل‪   ‬‬ ‫‪ ‬در ‪  ‬ر‪     ‬آن‪ ‬را‪ ‬روی‪ ‬‬ ‫ده‪ ‬از‪ ‬در ‪ ‬‬ ‫‪   ‬ا ر ‪   ‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ای‪ ‬ا‬
‫‪  ‬ار‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪    ،  ‬ه‪ ‬در ‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪   ‬در‪  ‬ر ی‪ ‬‬ ‫‪    .‬د‬ ‫ا ا‪   ‬‬
‫‪   ‬در‪ ‬‬ ‫‪ ‬در‪ ‬آن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آن‪ ‬ا ‪ ‬و‪ ‬ا‬ ‫‪    ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ،‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬از‪ ‬‬
‫د ‪  :‬‬ ‫ن‬ ‫ا ای ا ر را‬ ‫در‬ ‫د در‬ ‫ز‬ ‫‪.‬‬ ‫اری‬ ‫ه‬
‫‪ ‬‬
‫د‪ .‬‬ ‫ار‬ ‫در‬ ‫‪،‬وا‬ ‫‪،‬ا‬ ‫اری از‬ ‫ه ق‬ ‫ا ‪ .‬در‬ ‫م ای‬ ‫ند ه‬
‫‪ ‬‬
‫‪ .‬‬ ‫ا آن را ده‬ ‫‪.‬‬ ‫در‬ ‫ل ق ا ر روی ل‬
‫‪ ‬‬
‫‪  ‬م‪   ‬و‪ ‬‬ ‫‪ .(1  ) ‬‬ ‫‪ ‬وارد‪   ‬‬ ‫‪ ‬در‪ ‬‬ ‫ن‪ ‬داده‪ ‬در ‪ ‬‬ ‫ده‪ ‬در‪ ‬‬ ‫‪ ‬را‪  ‬ای‪ ‬ا‬ ‫ا ا‪  ‬ژول‪  ‬ی‪ ‬‬
‫‪ ‬اول‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ی‪ ‬داده‪  ‬ه‪ ‬را‪    ‬ر ‪ .(3  ) ‬‬ ‫‪  .(2  ) ‬اد‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬را‪ ‬‬ ‫ی‪ ‬‬ ‫را‬
‫‪ ‬‬ ‫ب‪  ‬ه‪ ‬ا ‪ ‬و‪ ‬ا‬ ‫‪   ‬از‪ ‬آن‪ ‬ا‬ ‫‪ ‬‬ ‫‪  ‬وه‪    ‬ار‪ ‬ا‬ ‫‪    ‬ار ‪  .‬ای‪   ‬‬ ‫‪ ‬را‪ ‬در‪   ‬در ‪ ‬‬
‫‪5  ) ‬‬ ‫‪ ‬‬ ‫‪   ‬در ‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬اول‪ ‬ا (‪ ‬را‪    ‬ار‪   ‬د ‪ .(4  ) ‬‬ ‫‪    0) ‬ن‪ ‬د ه‪ ‬‬
‫‪  ‬ار‪ ‬را‪ ‬‬ ‫‪  ‬م‪  ‬ه‪ ‬ا ‪   ‬‬ ‫‪   ‬در ‪ ‬‬ ‫‪   ‬ز‬ ‫‪ ‬از‪  ‬اب‪      ‬ز ‪ .(6  ) ‬‬ ‫‪ ‬‬ ‫(‪ .‬آ ه‪   ‬‬
‫‪  .(9‬‬ ‫دار )‬ ‫ا‬ ‫ان‬ ‫را‬ ‫ی در‬ ‫ر‬ ‫‪.(12 8‬‬ ‫)‬ ‫د‬ ‫ا م‬
    ‫در‬   ‫را‬ ‫ ه‬ ‫ده‬ ‫ا‬ ‫آن‬       ‫از‬ ‫ ی‬ ‫ ار‬   .(10  )    ‫ا‬  ‫ ا‬     ‫را‬ ‫آن‬ 
 .(13 ) ‫دا‬ ‫را‬ ‫ ا م‬.(12 ‫ و‬11 ) ‫ا‬
 

1. ​from​ heapq ​import​ heappush, heappop, heapify


2.
3.​ def​ merge_k_sorted_array(arrs):
4. k = ​len​(arrs)
5.
6. heap = [(arrs[i][0], i, 0) ​for​ i ​in​ range(k)\
7. ​if​ len(arrs[i])>0]
8. heapify(heap)
9. res = []
10.
11. ​while​ heap:
12. minv, arr_index, index = heappop(heap)
13. res.append(minv)
14. ​if​ index<len(arrs[arr_index])-1:
15. heappush(heap, (arrs[arr_index][index+1],
16. arr_index, index+1))
17.
18. ​return​ res

 . ‫ن‬ ‫ا‬ ‫و داده ی‬ ‫را دو ره ور‬ ‫وا‬ ‫در‬

   
 

   (Binary Search Tree) ‫ی دودو‬ ‫ در‬.۱۲


‫ی دودو ‪ ‬‬ ‫‪ ۱.۱۲‬در‬

‫‪ ‬از‪ ‬در ن‪ ‬دودو ‪ ‬ا ‪ .‬‬ ‫ر‪ ‬در ‪    -- ‬ا ‪ ‬درژد‪   ‬وزن‪ ‬در (‪  ‬ع‪ ‬‬ ‫ی‪ ‬دودو ‪  ) ‬ا‬ ‫در ‪ ‬‬

‫‪   ‬ا ‪  ‬رت‪      ‬د ‪ ‬‬ ‫‪ ‬در‪ ‬آن‪  ‬ار‪   ‬‬ ‫‪ ‬ا ‪ ‬در ‪ ‬آن‪ ‬ا ‪    ‬د ‪ ‬در ‪     ‬‬ ‫‪ ‬ا‬ ‫و‬

‫‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪ ‬و‪  ‬م‪  ‬د ‪ ‬در‪ ‬ز ‪ ‬در ‪ ‬را ‪ ‬آن‪  ‬ر ‪ ‬از‪ ‬آن‪   ‬‬ ‫در‪ ‬ز ‪ ‬در ‪      ‬ه‪ ‬از‪ ‬آن‪ ‬‬

‫‪ ‬‬ ‫‪ ‬را‪    ‬رت‪ ‬‬ ‫‪ ‬در‬ ‫‪ ‬و ه‪ ‬ای‪ ‬را‪ ‬ا ن‪    .      ‬ان‪  ‬ل‪    ‬ان‪    ‬ار‪ ‬در‪ ‬‬ ‫‪ ‬‬

‫‪     ‬‬ ‫‪ ‬در‪   ‬‬ ‫ی‪ ‬‬ ‫‪  ‬‬ ‫‪ ‬ای‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫د‪ ‬‬ ‫‪  ‬ا‪  ‬د‪ .‬ا ‪ ‬‬ ‫‪O(log n)  ‬‬

‫‪ .‬‬

‫ی دودو ا ‪  .‬‬ ‫در‬ ‫دودو ز‬ ‫ل‪ :‬در‬

‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬
‫ی‪ ‬‬ ‫اد‬ ‫‪.۲.۱۲‬‬

‫‪   ‬از‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪  ‬ای‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬ا اد‪ ‬در‬ ‫‪     ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪ ​ :‬‬
‫دا ‪ .‬‬
‫‪ ‬‬
‫‪11 ,7 ,3 ,5] ‬‬ ‫‪   ‬آن‪ ‬را‪ ‬در ‪ ‬درک‪  ‬ده‪ ‬ا ‪  .‬ض‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪      ‬ل‪  ‬وع‪       ‬‬ ‫‪   :‬‬
‫ی‪   ‬از‪ 2 ‬‬ ‫‪   ​ .‬‬ ‫‪ ‬از‪ ‬آن‪   ‬‬ ‫‪    ‬د ‪ 2 ‬و‪   3 ‬از‪ ‬او ‪  4 ‬ار‪ ‬دار ‪ ‬و‪ ‬‬ ‫‪ [4 ,2 ,‬را‪ ‬دار ‪​ .‬دو‪ ‬‬
‫‪ [2 ,0 ,3 ,2 ,0 ,0] ‬را‪   ‬‬ ‫‪   ‬‬ ‫‪  .‬ا ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬و‪    ​  ‬ار‪ ،3 ،7 ‬و‪ 5 ‬از‪ 11 ‬‬ ‫‪ ‬از‪ ‬آن‪ ‬‬
‫دا ‪  .‬‬ ‫ان اب‬
‫‪ ‬‬
‫‪ ‬را‪ ‬درک‪   ‬و‪    ‬ن‪ ‬د ‪   ‬‬ ‫‪ ‬‬ ‫‪  (brute force) ‬وع‪         ‬‬ ‫ی‪ ‬‬ ‫ارا ‪ ‬ا ر ‪ ‬را‪ ‬از‪ ‬روش‪ ‬‬
‫‪  .‬‬ ‫ده ای‬ ‫راه‬ ‫ا‬ ‫ا‬
‫‪ ‬‬
‫‪       ‬‬ ‫‪   ‬آن‪ ‬را‪   ‬آ ‪ ‬‬ ‫‪  ‬م‪ ‬‬ ‫‪ ‬و‪  ‬ای‪   ‬‬ ‫‪  ‬وع‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬از‪ ‬‬ ‫ی‪ ‬‬ ‫در‪ ‬روش‪ ‬‬
‫ر ‪  .‬ا ‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬از‪ ‬آن‪   ‬‬ ‫‪   ‬‬ ‫ی‪ ‬در‪ ‬‬ ‫‪    ‬اد‪ ‬‬ ‫‪   ‬‬ ‫‪ .‬از‪    ‬ر ه‪ ‬‬ ‫ر ‪   ‬‬
‫‪ ‬‬ ‫‪   ‬رود‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬و ‪  ‬اغ‪     ‬‬ ‫‪    ‬د‪   ‬‬ ‫‪  ‬ار‪  ‬در ‪ ‬‬ ‫‪ ‬از‪ ‬دو‪ ‬‬ ‫ی‪ ‬‬ ‫راه‪   ‬‬
‫‪ ‬ا ‪ ‬ا ر ‪) ‬‬ ‫‪ ‬‬ ‫رد‪ .‬‬ ‫‪ ‬از‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬اد‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪   ‬ا ی‪ ‬‬ ‫درو ‪ ‬از‪ ‬آن‪ ‬‬
‫‪  .‬‬ ‫‪O(n^2‬‬
‫‪ ‬‬
‫‪ ‬درو ‪ ‬ا ‪     ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪    ‬دن‪ ‬‬ ‫ر‪  ‬ده‪ ‬ا ‪ ‬ا ‪  ‬د‪ ‬ا ر ‪   ‬ا ‪ .‬‬ ‫ده‪  ‬زی‪ ‬ا ‪ ‬ا ر ‪ ‬‬
‫رد‪ .‬‬ ‫را‬ ‫از‬ ‫اد‬ ‫را آ‬
‫‪ ‬‬
‫‪   ‬از‪  4 ‬را‪ ‬ا ا‪ ‬‬ ‫‪ ‬و د‪  ‬ا ‪    .‬ض‪   ‬در‪  ‬ل‪   ‬‬ ‫‪  ‬د ‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬از‪   ‬‬ ‫ا ‪ ‬ا ‪ ‬‬
‫ی‪    ‬ر ‪  ‬وی‪ 4 ‬‬ ‫‪ ‬او ‪ ‬‬ ‫‪  ‬ا‪    ‬رت‪  [2 ,3 ,5 ,7 ,11] ‬ار‪ ‬د ‪ .‬آ ه‪ ‬ا‬ ‫‪ ‬و‪ ‬در‪   ‬‬ ‫‪ ‬‬
‫‪ ‬آن‪ 2 ‬‬ ‫‪   ‬ا‬ ‫‪   5 ‬‬ ‫‪  ‬ر ‪ ‬از‪ ،4 ‬‬ ‫‪ ‬از‪ ‬آن‪ ‬را‪  ‬ن‪   ‬د ‪ .‬در‪  ‬ل‪   ‬او ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬
‫‪ ‬از‪ ‬‬ ‫ر‪ ‬‬ ‫‪  ‬ر ‪ ‬از‪    ‬ار‪  ‬ا ‪  ‬ه‪ ‬‬ ‫‪ ‬او ‪ ‬‬ ‫ی‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ه‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‪   ‬‬ ‫‪ ‬‬
‫‪  ‬ز‪   ‬‬ ‫ی‪ ‬دودو ‪ ،‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪   ‬ا‬ ‫‪ ‬دا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ n ‬‬ ‫‪ ‬ا ‪ .‬در‪ ‬وا ‪ ‬ا ‪ ‬‬ ‫ی‪ ‬‬
‫‪ ‬‬ ‫‪      ‬ا ‪   ‬ا ‪ ‬روش‪  ‬اد‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪   ‬از‪   ‬‬ ‫ا ‪ ‬ا ‪ ‬‬ ‫‪  ‬ا ‪ ‬دا ‪ .‬‬ ‫ا ‪ log(n) ‬‬
‫‪  .‬‬ ‫از آن را‬
‫‪ ‬‬
‫ده‪ ‬‬ ‫‪ ‬ا‬ ‫ی‪ ‬‬ ‫‪    ‬ا ‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آن‪ ‬را‪ ‬‬ ‫‪    ‬ا ا‪  ‬م ‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪    ‬ای‪   ‬‬ ‫‪ ‬ا‬ ‫ا ‪ ‬‬
‫‪  .‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪ ‬و‪   ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ‪     ‬‬ ‫‪  ‬ای‪   ‬ا ‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬راه‪     ‬‬
‫‪  ‬ه‪ ‬‬ ‫‪ ‬را‪    ‬رت‪ ‬‬ ‫‪  ‬د ‪   ‬از‪   ‬‬ ‫‪   .‬ا ‪  ‬ر‪ ‬‬ ‫‪  ‬ه‪  ‬ف ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آن‪ ‬را‪ ‬از‪ ‬‬ ‫‪ ‬از‪   ‬‬
‫‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬ا ‪  ‬اد‪ ‬‬ ‫‪  ‬ر ‪ ‬از‪ ‬آن‪ ‬د ‪ .  ‬‬ ‫‪   ‬د ل‪ ‬او ‪ ‬‬ ‫ا ‪ ‬دا ‪ ‬و‪    ‬ا ‪ ‬در‪ ‬آن‪ ‬‬
‫‪ ‬‬ ‫‪  ‬ه ‪  ‬ف ‪ .  ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬از‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪ ‬آن‪ ‬ا ‪      ‬ر‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬ ‫آن‪ ‬را‪ ‬‬
‫‪  .‬‬ ‫آن )‪O(n‬‬ ‫دارد و‬ ‫از‬ ‫ف‬
‫‪ ‬‬
‫‪ .‬در‪ ‬ا ‪  ‬رت‪  ‬ی‪ ‬‬ ‫‪ ‬از‪     ‬را ‪ ،‬آن‪ ‬را‪ ‬از‪ ‬را ‪     ‬‬ ‫‪ ‬‬ ‫‪   ‬آن‪ ‬ا ‪    ‬ی‪ ‬‬ ‫دل‪ ‬ا ه‪ ‬ا‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ه‪ ‬را‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬را ‪     ‬‬ ‫ف‪  ‬ه‪   ،‬‬ ‫‪ ‬‬ ‫‪ ‬و‪  ‬ف‪ ‬‬ ‫‪  ‬زی‪   ‬‬
‫‪   .‬ا ‪  ‬ر‪ ‬‬ ‫‪ ‬‬ ‫‪    ‬د‪   ‬‬ ‫‪ ‬ای‪   ‬آن‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ا ‪ ‬و‪ ‬‬ ‫‪ ‬در‪ ‬ا ا‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪ ‬درج‪   ‬‬
‫)‪ O(n‬دارد‪  .‬‬ ‫ز‬ ‫د‬ ‫ف از‬ ‫درج در‬
‫‪ ‬‬
‫ن‪ ‬داده‪ ‬ای‪ ‬را‪   ‬د ‪   ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬ای‪ ‬در‪ ‬ذ ‪  ‬ای‪ ‬ا‬ ‫‪   ‬روش‪    ‬ارد‪ ‬ا ‪ ‬‬ ‫‪ ‬دوم‪  ‬و ‪ ‬‬ ‫روش‪ ‬ا‬
‫‪ ‬از‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬درج‪ ‬در‪ ‬آن‪ ‬‬ ‫ن‪ ‬‬ ‫‪ ‬ا ‪ ‬را‪   ‬د ‪ ‬و‪ ‬‬ ‫‪  ‬ه‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬در‪   ‬‬ ‫‪  ‬‬ ‫ی‪ ‬‬ ‫ا ن‪ ‬‬
‫‪  ‬ه‪ ‬ا ‪   ‬ا ‪  ‬وت‪   ‬درج‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪   .‬در ‪ ‬‬ ‫ن‪ ‬داده‪ِ  ‬د َر ‪   ‬‬ ‫‪ ‬ا ‪ .‬ا ‪ ‬‬ ‫درج‪ ‬در‪   ‬‬
‫د‪  .‬‬ ‫))‪ O(log(n‬ا م‬ ‫آن‬ ‫و ف‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬د ‪    ‬ان‪  ‬اد‪ ‬‬ ‫‪   .‬‬ ‫‪ ‬در ‪ ‬د ‪ ‬‬ ‫‪   ‬‬ ‫‪    ‬ان‪   ‬ا‬ ‫د‪   ‬دارد‪ ‬و‪ ‬آن‪ ‬ا‬ ‫ا ‪ ‬در ‪   ‬‬
‫د‪ .‬‬ ‫از آن‬ ‫در را ون‬ ‫در‬ ‫از‬
‫‪  ‬‬
‫د‪ .‬‬ ‫ا آن را‬ ‫ا ا ها‬ ‫ی در‬ ‫‪.‬‬ ‫ن‬
‫‪ ‬‬
‫‪  ‬ز‪ ‬دارد‪ ‬آن‪ ‬‬ ‫‪ ‬در‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬در ‪ ‬‬ ‫‪   ‬ا ‪  ‬ر‪ ‬را‪ ‬را ‪  ‬؟‪ ‬‬ ‫ی‪ ‬در‪ ‬در ‪ ‬ا د‪ ‬‬ ‫‪  ‬ا ‪ ‬‬
‫‪ ‬‬ ‫‪ ‬را‪ ‬آ ن‪  .  ‬ای‪ ‬ا ‪  ‬ر‪  ‬ا ‪        ‬ه‪  ‬ی‪ ‬در ‪ ‬ا‬ ‫‪ ‬از‪   ‬‬ ‫‪ ‬‬ ‫ا ‪    ‬رش‪  ‬اد‪ ‬‬
‫‪ ‬را‪  ‬ر ه‪    (counter) ‬ار ‪ ‬و‪ ‬آن‪ ‬‬ ‫‪    ‬اد‪  ‬ه‪  ‬ی‪ ‬ز ‪ ‬در ‪   ‬آن‪  ‬ه‪ ‬را‪ ‬در‪  ‬د‪   ‬دارد‪ .‬ا ‪ ‬ا ‪   ‬‬
‫‪ ‬را‪ ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪    [4 ,2 ,11 ,7 ,3 ,5] ‬ض‪ ‬ا‬ ‫‪  ‬ای‪ ‬‬ ‫را‪  C   ‬ن‪   ‬د ‪    .‬ان‪  ‬ل‪ ‬در ‪     ‬ا‬
‫ا ا ‪ :‬‬ ‫درج‬ ‫در در‬ ‫را‬

‫‪ ‬‬
‫دودو در ا ی ا ای ا ر ‪ ‬‬ ‫آن در در‬ ‫ا‬ ‫ه و‬ ‫د‬ ‫ای از‬

‫‪ ‬‬
‫‪ ‬از‪    ‬ار‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪  ‬ده‪ ‬ا ‪  .‬ای‪ ‬‬ ‫‪ "c:" ‬‬ ‫ط‪    ‬ر ه‪ ‬را‪ ‬‬ ‫‪  ‬د ‪ ‬‬ ‫در‪ ‬ا ‪ ‬‬
‫‪ ‬‬ ‫ه‪ ‬در‪ ‬‬ ‫‪  .‬ای‪ ‬ا ‪  ‬ر‪ ‬‬ ‫‪   ‬‬ ‫ع‪  ‬ر ه‪ "c:" ‬را‪   ‬روش‪ ‬‬ ‫‪   ‬و‪  ‬ار‪ ‬‬ ‫داده‪  ‬ه‪   ‬در ‪ ‬را‪ ‬‬
‫‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬را ‪    ‬ه‪ ‬‬ ‫(‪   ‬‬ ‫‪ ‬از‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬رد‪     )   ‬ا ‪  ‬اد‪ ‬‬ ‫ر ن‪   ‬‬
‫‪ ‬از‪ 11 ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪    .‬ان‪  ‬ل‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫ع‪ ‬ا‬ ‫‪    ‬ار‪  ‬ر ه‪ ‬آن‪  ‬ه‪  ‬وه‪   ‬را‪   ‬‬
‫‪  .‬‬ ‫‪5‬‬ ‫ا‬ ‫د )‪ (3+1‬و )‪ (0+1‬را‬
‫‪ ‬‬
‫‪   .‬ا ‪ ‬‬ ‫‪ ‬را‪        ‬ف‪ O(log(n)) ‬‬ ‫‪ ‬از‪   ‬‬ ‫‪ ‬‬ ‫‪    ‬ا ‪  ‬اد‪ ‬‬ ‫‪ ‬‬ ‫ده‪ ‬از‪ ‬ا ‪ ‬‬ ‫‪ ‬ا‬
‫‪ ‬او ‪ ‬ا ‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪  ،‬ر‪ ‬ا‬ ‫ی‪ ‬دودو ‪  ‬وز‪   ‬‬ ‫‪ ‬در‪ ‬در ‪ ‬‬ ‫د ‪   ‬ا ‪  ‬د ‪ ‬را‪ ‬در‪ ‬ز ن‪ ‬درج‪ ‬‬
‫دا ‪  .‬‬ ‫ا‬ ‫د‬
‫‪ ‬‬
‫‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪  .‬ای‪  ‬رش‪ ‬‬ ‫‪  ‬وع‪   ‬‬ ‫‪ ‬را ‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪   ‬از‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫ا ‪ ‬‬
‫‪ ‬ا ا‪ ‬‬ ‫‪ ‬از‪ ‬را ‪     ‬‬ ‫‪ ‬ا ‪   .‬‬ ‫‪ .‬ا ‪ ‬در ‪ ‬در‪ ‬ا ا‪ ‬‬ ‫ده‪   ‬‬ ‫‪ ‬از‪   ‬در ‪ ‬ا‬ ‫‪ ‬را ‪   ‬‬
‫‪ ‬را‪ ‬در‪ ‬در ‪ ‬درج‪     ‬و‪  ‬د ‪ ‬‬ ‫‪  ‬د‪ ‬ا ‪ ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫ده‪ ‬از‪ ‬در ‪ ‬‬ ‫‪ ‬از‪ ‬آن‪ ‬را‪   ‬ا‬ ‫‪ ‬‬ ‫اد‪ ‬‬
‫‪  ‬ی‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫‪    ‬ای‪ ‬‬ ‫‪ ‬از‪  ‬ه‪   ‬را‪  ‬وز‪   ‬‬ ‫‪ ‬‬ ‫ر ه‪  ‬اد‪ ‬‬ ‫ط‪   ‬‬
‫‪  .‬‬ ‫آ ده‬
‫‪ ‬‬
‫‪ .‬‬ ‫ا ا‬ ‫آن را روی ل ورودی‬ ‫ا ر‬ ‫از در‬ ‫ای ا‬

‫‪ ‬‬
‫ل ورودی‪ ‬‬ ‫ای‬ ‫در‬ ‫وز ر‬ ‫رو‬

‫‪ ‬‬
‫‪  .‬‬ ‫در‬ ‫د‬ ‫ر‬ ‫ا ر در‬ ‫د‬ ‫ن‬ ‫ل‬
‫‪ ‬‬
‫‪   .‬ا ‪  ‬رت‪ ‬‬ ‫‪  ‬ر ه‪ ‬در‪  ‬ه‪   ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪ ‬رو ‪ ‬‬ ‫‪  ‬ز‪   ‬‬ ‫‪  ‬اری‪ ‬‬ ‫در‪  ‬ر ‪    ‬د ‪ ‬‬
‫ه‪  ‬ار‪  ‬وی‪   ‬آن‪ ‬‬ ‫‪      ‬ه‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬در‪ ‬در ‪  ‬ار‪  ‬ر ه‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪ ‬ز ن‪ ‬درج‪   ‬‬
‫ط‪    ‬د ‪  ‬اری‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬او ‪   1 ‬د ‪ .‬ا ‪ ‬‬ ‫‪    ‬ر ه‪    ‬ه ‪ ‬‬ ‫‪ ‬وا ‪ ‬ا ا ‪   ‬د ‪ .‬در‪ ‬‬
‫‪ .    ‬‬ ‫‪ ‬در ‪ ‬‬ ‫‪   ‬آ ‪ ‬ا ‪ ‬‬ ‫‪  ‬ر ‪   ‬‬ ‫‪  ‬اری‪   ‬‬ ‫‪ ‬‬ ‫را‪      .      ‬ل‪ ‬د ‪   ‬‬
‫ه‪  ‬د ‪ ‬‬ ‫‪ ‬در ‪ ‬را‪   ‬از‪ ‬‬ ‫‪ ‬در ‪  ‬ی‪ ‬ز ‪ ‬و‬ ‫‪ ‬ورودی‪  ‬ا ‪ [4 ,2 ,11 ,1 ,5 ,5]   ‬ا ‪ .‬د‬ ‫‪ ‬‬ ‫ض‪ ‬‬
‫د ‪ .‬‬ ‫ن‬
‫‪ ‬‬
‫‪  ‬ی‪ ‬ا ا ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫ی‪ ‬ورودی‪    ‬ار‪     ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫ل‪  ‬ق‪  ‬ن‪   ‬د ‪   ‬ا ‪ ‬‬
‫رو ‪ .‬‬ ‫اغ ده زی ا ر‬ ‫ه‬ ‫از‬ ‫ا ‪،‬‬ ‫ا ر در‬ ‫د‬ ‫ن‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪      ‬م‪  leq_counter ‬ای‪   ‬دا‬ ‫‪   .‬‬ ‫‪   ‬‬ ‫‪ ‬ا ‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫در‪ ‬ا ا‪    ‬ه‪ ‬از‪ ‬در ‪   ‬‬
‫‪ ‬‬ ‫ط‪ .(1-7 ‬ا ‪ ‬‬ ‫‪) ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪   ‬آن‪ ‬‬ ‫‪ ‬از‪ ‬آن‪   ‬در‪ ‬‬ ‫‪  ‬‬ ‫‪  ‬وی‪     ‬‬ ‫رش‪ ‬‬
‫‪  .‬‬ ‫ی‬ ‫دل '‪ 'c:‬در‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬را‪    ‬ان‪ ‬‬ ‫‪ ‬‬ ‫‪     ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ .(8  ) ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪        ‬را‬
‫‪ ‬ا ‪ .(13  ) ‬ا ‪  ‬ر‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ر ‪ ‬در ‪ ‬را‪   ‬ا د‪    ‬ه‪   ‬ا س‪ ‬آ‬ ‫دا ‪ 9  ) ‬و‪ .(10 ‬‬
‫‪ 0 ‬ا (‪ ‬و‪ ‬‬ ‫‪   ‬آن‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ) ‬اد‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪  ‬ای‪ ‬آ‬ ‫ا ‪ ‬د ‪ ‬ا م‪   ‬د ‪   ‬‬
‫‪  ‬ار‪ ‬د ‪ ‬او ‪ .(14  )     ‬در‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬آ ‪  ‬وع‪ .    ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ ‬‬ ‫ت‪ ‬را‪ ‬‬
‫‪     ‬‬ ‫(‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬ا‬ ‫‪) ‬‬ ‫‪   ‬‬ ‫‪  ‬وع‪     ‬و‪   ‬‬ ‫‪   ‬آ ‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ار‪ ‬از‪ ‬‬ ‫‪ ‬‬
‫‪ ‬را‪ ‬در‪ ‬در ‪     ‬و‪ ‬‬ ‫‪  ‬ار‪    (27   20  ) ‬وع‪ ‬از‪ ‬ر ‪ ‬در ‪  ‬ی‪ ‬در ‪ ‬ا ‪ ‬‬ ‫‪ ‬در‪   ‬‬ ‫) ‪ .(16 ‬‬
‫‪   ‬ا ‪   c_node ‬ا ا‪   ‬ر ‪ ‬در ‪ ‬‬ ‫‪  .‬ای‪ ‬ا ‪  ‬ر‪   ‬‬ ‫ن‪   ‬ا ‪  ‬ر‪  ‬ار‪  ‬ر ه‪  ‬ه‪   ‬را‪  ‬وز‪   ‬‬
‫‪ .(17  )     ‬ا ‪ ‬دو‪ ‬ا ره‪   ‬در‪ ‬‬ ‫‪   ‬ا ‪   p_node ‬ا ا‪  ‬ار‪  ‬ل‪ (None) ‬دارد‪ ‬‬ ‫ا ره‪     ‬و‪   ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ای‪  ‬رش‪  ‬اد‪ ‬‬ ‫‪   ‬‬ ‫‪ .‬‬ ‫‪ i ‬ام‪  ‬وز‪   ‬‬ ‫‪  ‬ای‪ ‬درج‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫م‪ ‬‬
‫‪ ‬را ‪ ‬‬ ‫‪   ‬‬ ‫‪   .(18  )     ‬‬ ‫‪i  ‬ام‪      ‬ا ‪ ‬آن‪ ‬را‪ ‬در‪ ‬در ‪ ‬درج‪      ‬ار‪ ‬او ‪ 0 ‬در‪ ‬‬ ‫از‪ ‬‬
‫‪ .‬‬ ‫ر ه‬ ‫ر ه ه را ا‬ ‫ار‬ ‫ه‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪    c_node   ‬ا ‪   ‬‬ ‫‪     p_node ‬دار ‪   ‬ا ‪ ‬‬ ‫‪  ‬ار‪ c_node ‬را‪ ‬درون‪ ‬‬
‫‪ i ‬ام‪ ‬را‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫‪ .(21  ) ‬‬ ‫‪ i ‬ام‪ ‬را‪ ‬از‪ ‬د ‪ ‬‬ ‫‪ ‬درج‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ی‪  ‬ل‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬و‪ ‬‬ ‫در ‪ ‬‬
‫‪ c_node   ‬‬ ‫‪ ‬درج‪ ‬آن‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪ c_node ‬‬ ‫‪ i ‬ام‪ ‬‬ ‫‪ .‬در‪  ‬ر ‪   ‬‬ ‫‪   ‬‬ ‫‪ c_node ‬‬ ‫‪ ‬‬
‫‪  )   ‬‬ ‫‪   ‬آن‪ ‬‬ ‫‪   ‬‬ ‫‪ c_node ‬را‪   ‬وا ‪  ‬ا ‪ ‬و‪ ‬‬ ‫ط‪   ‬‬ ‫‪   ‬‬ ‫ا ‪   ‬‬ ‫‪ .‬‬ ‫‪ ‬‬
‫‪   ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪ ‬را ‪   c_node ‬‬ ‫‪ ‬درج‪ ‬آن‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪i ‬ام‪  ‬ر ‪ ‬از‪ c_node ‬‬ ‫‪ .(24   22‬در‪  ‬ر ‪   ‬‬
‫‪   ‬‬ ‫‪ ‬ا ‪  ‬اد‪ ‬آ ‪ ) ‬ار‪ ‬‬ ‫‪  ‬و‪ ‬‬ ‫‪ i ‬ام‪ ‬‬ ‫‪  c_node  ‬از‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫م‪  ‬ا ‪   ‬‬ ‫ا ‪ ‬‬
‫ط ‪  .(27 25‬‬ ‫د)‬ ‫رد ا‬ ‫ی را‬ ‫اد‬ ‫‪counter‬‬ ‫‪(leq_counter‬‬
‫‪ ‬‬
‫‪  ‬ار‪ ‬‬ ‫ا ‪  ‬‬ ‫‪ .‬‬ ‫‪ ‬را ‪   p_node     ‬‬ ‫‪i ‬ام‪ ‬در‪ ‬‬ ‫‪ ‬در ‪ ‬درج‪ ‬‬ ‫‪ ‬درو ‪ ‬‬ ‫‪ ‬از‪ ‬ا ی‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬اد‪ ‬‬ ‫ط‪ .(32   29 ‬‬ ‫‪) ‬‬ ‫‪ ‬را ‪     ‬ا ‪  ‬ه‪ ‬درج‪ ‬‬ ‫‪i ‬ام‪    ‬ار‪ p_node ‬آن‪ ‬را‪ ‬در‪ ‬‬
‫‪ ‬‬ ‫‪ .(34‬‬ ‫د)‬ ‫‪ res‬ار‬ ‫از آن در‬
1.​ class​ Node(​object​):
2. ​def​ ​__init__​(​self​, value):
3. ​self​.value = value
4. ​self​.left = None
5. ​self​.right = None
6. ​self​.leq_counter = 1
7.
8.​ def​ countSmaller(nums):
9. ​if​ nums == []:
10. ​return​ []
11.
12. len_nums = len(nums)
13. root = Node(nums[len_nums-1])
14. res = [0] * len_nums
15.
16. ​for​ i ​in​ ​range​(len_nums-2, -1, -1):
17. i_val, c_node, p_node = nums[i], root, None
18. counter = 0
19.
20. ​while​ c_node:
21. p_node = c_node
22. ​if​ i_val<=c_node.value:
23. c_node.leq_counter += 1
24. c_node = c_node.left
25. ​elif​ c_node.value<i_val:
26. counter += c_node.leq_counter
27. c_node = c_node.right
28.
29. ​if​ p_node.value<i_val:
30. p_node.right = Node(i_val)
31. ​elif​ i_val<p_node.value:
32. p_node.left = Node(i_val)
33.
34. res[i] = counter
35.
36. ​return​ res

 
   O(n*log(n))  ‫ا ر‬  ‫ا‬     ، ‫ا‬ ‫ ز‬  ‫در‬ ‫در‬   log(n)  ‫ ا‬ i   ‫ ای‬  ‫ا‬     
 .
   
‫زه‪ ‬‬ ‫د در‬ ‫ع‬ ‫‪۲.۱۲‬‬

‫ع‪  ‬م‪  ‬د ‪ ‬درون‪ ‬در ‪ L   ‬‬ ‫‪   ‬‬ ‫‪ ‬ای‪ ‬‬ ‫‪   :‬در ‪ ‬و‪ ‬دو‪  ‬د‪ L ‬و‪ (L<=R  ) R ‬داده‪  ‬ه‪ ‬ا ‪ .‬‬
‫‪ .‬‬ ‫رت و د( را‬ ‫د در‬ ‫دا‬ ‫و‪)R‬‬
‫‪ ‬‬
‫‪   ‬آن‪ ‬را‪  ‬ب‪ ‬درک‪  ‬ده‪ ‬ا ‪  .‬ض‪     ‬در ‪ ‬ز ‪ ‬و‪  ‬د ‪ L=19 ‬‬ ‫‪ ‬‬ ‫‪  ‬‬ ‫‪  ​ :‬ر‪ ‬را‪      ‬ل‪  ‬وع‪ ‬‬
‫ه ا ‪  .‬‬ ‫و ‪ R=60‬داده‬

‫‪ ‬‬
‫‪ ‬‬ ‫ان ورودی‬ ‫در‬ ‫ای از‬
‫‪ ‬‬

‫دا ‪  .‬‬ ‫ع ‪ (53 ,45 ,30 ,25‬را‬ ‫ار ‪) 153‬‬ ‫آ ه‬


‫‪ ‬‬
‫ی‪ ‬آن‪ ‬‬ ‫ی‪ ‬دودو ‪   ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫‪ .‬در‪ ‬ا ‪ ‬‬ ‫‪  ‬وع‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬را‪   ‬ارا ‪   ‬ا ر ‪ ‬‬ ‫‪ ‬‬
‫‪  .‬‬ ‫‪L‬و‪R‬‬ ‫ار در زه‬ ‫آ‬ ‫ه‬ ‫و ای‬ ‫را‬ ‫در‬ ‫ا‬
‫‪ ‬‬
‫‪ ‬و ‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬در‬ ‫‪ ‬را‪   ‬در‪ ‬آن‪   ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ری‪ ‬از‪ ‬ز ‪ ‬در ‪     ‬‬ ‫ل‪ ‬ا ‪ ‬روش‪ ‬آن‪ ‬ا ‪   ‬‬ ‫ا‬
‫‪ ‬در ‪ ‬‬ ‫‪ ‬را ‪ ‬آن‪ ‬و د‪  ‬ارد‪ .‬ا ‪ ‬‬ ‫ی‪    ‬ار‪ 19   ‬و‪ 60 ‬در‪ ‬‬ ‫‪  ‬ه‪    ‬ار‪   80 ‬ر ‪   ‬دا ‪   ‬‬
‫د ‪ .‬‬ ‫را‬ ‫ا ر‬ ‫ها ه‬ ‫‪.‬ا‬ ‫ه از آن ر‬ ‫را‬ ‫ز در‬ ‫ز ا م‬ ‫ا‬
‫‪  ‬‬
‫‪  :‬‬ ‫ه در‬ ‫ار‬ ‫ای‬ ‫ا ر‬ ‫در‬
‫ی‪  ‬ر ‪ ‬‬ ‫‪  ‬ن‪   ‬‬ ‫‪   ‬آن‪  ‬ف‪   ‬‬ ‫‪ .‬در‪ ‬ا ‪  ‬رت‪ ‬از‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪ ‬از‪   L ‬‬ ‫)‪  (۱‬ار‪  ‬ه‪ ‬‬
‫‪  .‬‬ ‫‪L‬و‪R‬‬ ‫د در زه‬ ‫آن را ای‬ ‫را‬ ‫ز در‬ ‫ا‬ ‫ا‬ ‫از ‪ L‬در آن و د ارد‪.‬‬
‫‪ ‬را ‪ ‬‬ ‫‪ ‬و‪ ‬از‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪   ‬آن‪ ‬را‪ ‬‬ ‫‪     ‬ز ‪ ‬در ‪ ‬‬ ‫)‪ (۲‬در‪  ‬ر ‪    ‬ار‪ ‬ر ‪  ‬ر ‪ ‬از‪ R ‬‬
‫‪ .‬‬
‫‪ ‬‬ ‫‪     ‬و‪   ‬دو‪ ‬ز ‪ ‬در ‪ ‬‬ ‫ع‪ ‬ا اد‪  ‬زه‪ L ‬و‪ R ‬ا‬ ‫‪ ‬آن‪ ‬را‪   ‬‬ ‫‪  ‬ار‪ ‬ر ‪ ‬در‪  ‬زه‪  L ‬و‪ R ‬‬ ‫)‪ (۳‬‬
‫‪  .‬‬ ‫ه‬ ‫در زه داده‬ ‫را ای‬ ‫و را‬
‫‪   ،‬ا ای‪ ‬‬ ‫‪ ‬وا‬ ‫‪  ‬ده‪  ‬د‪ .‬در‪   ‬‬ ‫ا ‪    ‬ا ‪    ‬رت‪  ‬ز‬ ‫‪ ‬دارد‪ ‬و‪ ‬‬ ‫‪ ‬ز‬ ‫ا ‪ ‬ا ر ‪   ‬‬
‫‪  .‬‬ ‫ده زی‬ ‫وع‬ ‫‪.‬‬ ‫در‬ ‫ا ر روی ل‬
‫‪ ‬آ ه‪  ‬ار‪ 0 ‬را‪ ‬‬ ‫‪  ‬ار‪ ‬ر ‪  ‬ل‪ (null) ‬‬ ‫‪ .(1  ) ‬‬ ‫ب‪   ‬‬ ‫‪ ‬ا‬ ‫ی‪ ‬‬ ‫ا ا‪  ‬ای‪    ‬م‪ ‬و‪  ‬را‬
‫‪ 4  )     ‬و‪ .(5 ‬‬ ‫‪   ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬ ‫ط‪ 2 ‬و‪ .(3 ‬ا ‪  ‬ار‪ ‬ر ‪  ‬ر ‪ ‬از‪ R ‬‬ ‫‪  ‬دا ‪) ‬‬
‫‪ 6  )     ‬و‪ .(7 ‬در‪   ‬ا ‪  ‬رت‪ ‬‬ ‫‪ ‬را ‪ ‬آن‪ ‬را‪ ‬‬ ‫‪ ‬ز ‪ ‬در ‪ ‬‬ ‫‪ ‬از‪ L ‬‬ ‫در‪  ‬ر ‪    ‬ار‪ ‬ر ‪ ‬‬
‫ط ‪ 8‬و ‪   .(9‬‬ ‫دا )‬ ‫و آن را‬ ‫ا‬ ‫دو ز در‬ ‫ه از‬ ‫را‬ ‫ار ر‬
‫‪ ‬‬
‫‪1.​ def​ LtoRSumDrajd(root, L, R):‬‬
‫‪2.‬‬ ‫‪​if​ ​not​ root:‬‬
‫‪3.‬‬ ‫‪return 0‬‬
‫‪4.‬‬ ‫‪​if​ R<root.val:‬‬
‫‪5.‬‬ ‫)‪​return​ LtoRSumDrajd(root.left, L, R‬‬
‫‪6.‬‬ ‫‪​if​ root.val<L:‬‬
‫‪7.‬‬ ‫)‪​return​ LtoRSumDrajd(root.right, L, R‬‬
‫‪8.‬‬ ‫\‪​return​ root.val + LtoRSumDrajd(root.left, L, R) +‬‬
‫‪9.‬‬ ‫)‪LtoRSumDrajd(root.right, L, R‬‬

‫‪ ‬‬
‫‪ ‬‬ ‫ن‪ ‬داده‪ ‬‬ ‫‪    ‬ده‪  ‬زی‪ .  ‬از‪ ‬‬ ‫ن‪ ‬داده‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪   ،‬ا‬ ‫ا ‪ ‬ا ر ‪ ‬را‪    ‬ان‪    ‬رت‪    ‬ز‬
‫ده‪    ‬د‪     .‬ز ‪ ‬ا ‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬دا ‪ ‬‬ ‫‪ ‬ا ‪  ‬د ی‪ ‬در‪  ‬زه‪ ‬‬ ‫‪   ‬‬ ‫ای‪ ‬د ل‪  ‬دن‪ ‬ر ‪ ‬ز ‪ ‬در ‪ ‬‬
‫د ‪ .‬‬ ‫ر را ا م‬
‫‪ ‬‬
1.​ from​ collections ​import​ deque
2.​ def​ rangeSumDrajd(root, L, R):
3. s = 0
4. queue = deque([root])
5. ​while​ queue:
6. c = queue.popleft()
7. ​if​ c:
8. ​if​ R<c.val:
9. queue.append(c.left)
10. ​elif​ c.val<L:
11. queue.append(c.right)
12. ​else​:
13. s += c.val
14. queue.append(c.left)
15. queue.append(c.right)
16. ​return​ s

 ‫در‬   ‫ ه‬   ‫و‬       ‫را‬   ‫ ه‬  ‫در‬ ‫ار ع‬ ‫ا ازه‬    ‫ ا‬  ‫ا‬       ،‫ ق‬  ‫ا ر‬ ‫دو‬   ‫در‬
))  ‫ا ر‬  ‫ا‬     ،   ‫در‬  ‫ د‬ ‫ زه‬ ‫در‬ ‫ د‬ R ‫و‬ L    ‫ ر‬ ‫در‬ ،    L    R  ‫زه‬
   . O(n) ‫ در‬. O(log(n) + (R-L
‫‪ ‬‬

‫‪ ‬‬ ‫‪ .۱۳‬اف‪ ‬‬
‫‪ ‬‬

‫‪ ۱.۱۳‬اف‪ ‬‬

‫‪    ‬ر‪   ‬آ ‪ .‬داده‪   ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ری‪ ‬از‪ ‬‬ ‫‪   ‬‬ ‫ر‪   ‬ا ‪   ‬در‪ ‬‬ ‫ن‪ ‬داده‪ ‬‬ ‫اف‪   ‬‬

‫ده‪   ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪  ‬ده‪     ‬در‪ ‬‬ ‫‪ ‬‬ ‫ر‪  ‬ا ‪ ‬دار ‪    .‬ان‪  ‬ل‪ ‬‬ ‫‪ ‬ذا ‪ ‬‬ ‫‪ ‬از‪ ‬‬

‫‪        ‬ا ‪ ‬از‪ ‬‬ ‫‪ ‬د ‪  ‬ل‪  ‬دن‪ ‬داده‪      ‬رت‪  ‬اف‪     ‬‬ ‫‪ ‬‬ ‫ر‪  ‬اف‪ ‬دارد‪ .‬در‪ ‬‬ ‫د‪ ‬‬

‫‪  ‬ا ‪ ‬ا م‪ ‬‬ ‫‪  ‬وژه‪   ‬‬ ‫‪ ‬‬ ‫‪     .‬‬ ‫ده‪ ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫ا ر ‪  ‬ی‪  ‬اف‪   ‬‬

‫‪   .‬ا ‪  ‬ر‪    ‬ان‪ ‬از‪ ‬‬ ‫‪ ‬را‪    ‬ان‪    ‬رت‪    ‬اف‪ ‬در‪   ‬‬ ‫‪ ‬ا ٓ‬ ‫‪ ‬‬ ‫وژه‪    ‬اه‪ ‬وا‬

‫‪  ‬وژه‪ ،‬و‪ ‬ز ن‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ه‪   ‬‬ ‫ری‪ ‬از‪  ‬ا ت‪ ‬در‪  ‬رد‪  ‬وژه‪ ،‬‬ ‫‪   ‬‬ ‫ا ر ‪  ‬ی‪  ‬اف‪  ‬ای‪ ‬‬

‫ده د‪   .‬‬ ‫وژه ا‬ ‫ن‬

‫‪ ‬‬
‫‪ ‬‬ ‫اری اف در‬
‫‪ ‬‬ ‫‪ ‬ا ‪ .‬‬ ‫ده‪ ‬از‪   ‬‬ ‫‪  ‬ده‪  ‬د‪ .‬روش‪ ‬اول‪ ‬ا‬ ‫‪ ‬‬ ‫اف‪ ‬را‪   ‬دو‪ ‬روش‪  ‬ه‪    ‬ان‪ ‬در‪ ‬‬

‫د ‪ .‬‬ ‫را‬ ‫اف ا‬ ‫ذ‬

‫‪g = [[0,‬‬ ‫‪10,‬‬ ‫‪1,‬‬ ‫‪2], ‬‬


‫‪[10,‬‬ ‫‪0,‬‬ ‫‪3,‬‬ ‫‪0], ‬‬
‫‪[1,‬‬ ‫‪3,‬‬ ‫‪0,‬‬ ‫‪1], ‬‬
‫‪[2,‬‬ ‫‪0,‬‬ ‫‪1,‬‬ ‫‪0]] ‬‬

‫‪   ‬‬
 .‫د‬ ‫اری‬ ‫در‬ ‫ی از‬ ‫د‬ ‫ان‬ ‫ز را‬ ‫اف‬

 
g = {“Golestan”: [“Semnan”], 
“Semnan”: [“Tehran”, “Esfahan”], 
“Tehran”: [“Semnan”], 
“Esfahan”: [“Semnan”, “Yazd”, “Fars”], 
“Fars”: [“Yazd”, “Esfahan”], 
“Yazd”: [“Esfahan”, “Fars”] 

 ‫را‬ ‫روش‬ ‫دو‬  ‫ا‬   ‫ اف‬ ‫ زی‬ ‫ ده‬        ‫د‬ ‫ و‬   ‫ ه‬   ‫ر ع‬ ‫ ه‬ ‫و‬ ‫ت‬ ‫ا‬ ‫ ع‬ ‫ وت‬       ‫ر‬

 . ‫ب‬ ‫ا‬

 ‫ت‬ ‫د‬ ۲.۱۳

     ،‫ ف‬ . ‫ا‬ ‫ ه‬ ‫داده‬         ‫ت‬  ‫از‬     ‫و‬ ،‫ ن‬     ،‫ وع‬     :

 ‫ ض‬     ‫از‬ ‫ ف‬         ‫در‬    ‫ود‬   ‫ا‬    ‫ا‬ ‫ات‬  ‫از‬ ‫ای‬  ‫د‬ ‫از‬ ‫ده‬ ‫ا‬   ‫ ن‬     ‫وع‬

   ‫ ل‬     ‫ای‬   .  ‫ ه‬ ‫داده‬ ‫ت‬             ‫د‬   ‫ت‬  .‫ د‬ 

 . ‫دا‬ ‫ن را‬ ‫وع‬ ‫ای ر ن از‬ ‫د‬

  ‫ا‬ ‫ ل‬ ‫ ان‬   . ‫ا‬ ‫ ده‬ ‫درک‬  ‫در‬ ‫را‬              ‫آ ز‬ ‫ ل‬     ‫را‬ ‫ ر‬ ‫ل‬    :

 cool, bell, tool, wool, wage, rage,cook, toll, ‫ ه‬ ‫داده‬ ‫ت‬    ‫و‬   book ‫ ن‬   ‫و‬ tell ‫ وع‬ 

  . ‫د‬ ‫ه‬ tell ->toll-> tool-> cool-> cook->book ‫ آ ه د‬، cage
‫‪ ‬‬

‫‪ ‬ی‪ ‬د ‪   ‬‬ ‫‪ ‬ای‪   ‬‬ ‫ح‪  ‬ا ‪ :  ‬ا ‪ ‬‬ ‫‪  ‬ار ‪ ‬روی‪   ‬ا‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪  ‬رد‪ ‬راه‪   ‬ا ‪ ‬‬ ‫‪ ‬از‪ ‬ا‬

‫ور ‪ .‬‬ ‫‪ toll‬و ‪ tool‬دو‬ ‫‪.‬‬ ‫آ را ' ور'‬ ‫وت‬ ‫ف‬ ‫در‬

‫‪ ‬‬

‫ت‪  ‬ور‪   ‬ر ‪ ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪ ‬ا ‪ .‬در‪ ‬ا ‪ ‬روش‪    ‬م‪ ‬د‬ ‫ی‪ ‬‬ ‫‪     ‬آن‪       ‬روش‪ ‬‬ ‫او ‪ ‬ا ر‬

‫دا ‪  .‬‬ ‫ان‬ ‫را‬ ‫د‬ ‫و در ا‬ ‫ا د‬ ‫ر‬ ‫ن را‬ ‫وع را‬

‫‪ ‬‬

‫‪  ‬د‪ .‬‬ ‫‪ ‬ا‬ ‫‪ ،‬و‪   ‬ا ی‪ ‬د‬ ‫ت‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ور‪ ‬از‪ ‬‬ ‫‪  ‬وع‪ ‬آ ز‪  ‬د‪   ،‬‬ ‫‪   ‬از‪ ‬‬ ‫‪   ‬د‬ ‫ای‪ ‬‬

‫‪   ‬آ ‪  ‬ور‪ ‬‬ ‫‪   ‬ر ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ت(‪ ‬را‪   ‬‬ ‫‪ ) w   ‬اد‪   ‬‬ ‫‪ ‬از‪   ‬د‬ ‫در‪ ‬وا ‪ ‬در‪   ‬‬

‫‪  ‬‬ ‫ت‪  ‬ور‪ ‬‬ ‫‪     ‬از‪ ‬‬ ‫‪   ‬ا‬ ‫‪   .‬‬ ‫ت‪   L ‬‬ ‫‪ ‬‬ ‫‪  ،‬ا ‪  ‬ل‪ ‬د‬ ‫ت‪ L ‬‬ ‫؟‪ ‬ا ‪  ‬ل‪ ‬‬

‫ا ‪  .‬‬ ‫) ‪O(W L‬‬ ‫ا ا ر‬ ‫‪،‬‬ ‫ر ده‬ ‫ن‬ ‫ر ن‬

‫‪ ‬‬

‫ی‪ ‬‬ ‫‪ ‬را‪     ‬آ ‪  ‬و ‪     ‬‬ ‫‪ ‬‬ ‫‪) :‬ا(‪ ‬آن‪     ‬‬ ‫‪     ‬‬ ‫‪ ‬دارد‪   ‬آن‪ ‬را‪ ‬ا‬ ‫ا ‪ ‬ا ر ‪ ‬دو‪ ‬‬

‫‪ ‬‬ ‫ت‪ ‬را‪   ‬آ‬ ‫‪    ‬ر‪     ‬‬ ‫ب‪ ،  ‬و‪) ‬اا(‪ ‬ا‬ ‫‪ ‬آ ‪ ‬را‪ ‬ا‬ ‫‪  ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪   ،‬ا‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬

‫‪ ‬‬ ‫‪ .‬ا ‪  ‬ر‪ ‬‬ ‫ب‪ ‬‬ ‫‪ ‬را‪ ‬ا‬ ‫ت‪  ‬ور‪  ‬ی‪ ‬در‪ ‬د‬ ‫‪  ‬‬ ‫‪ ‬‬ ‫ت‪   ‬آن‪ ‬ر ه‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ای‪   ‬در‪ ‬د‬

‫ر ‪ .‬‬ ‫اری‬

‫‪ ‬‬

‫‪ .‬‬ ‫ت را‬ ‫ا‬ ‫در ادا‬

‫‪ ‬‬
‫‪ ‬‬ ‫‪   ‬در‪  ‬ل‪   ‬را‪ ‬‬ ‫ر‪  ‬ورت‪ ‬‬ ‫‪ ،‬‬ ‫ی‪ ‬‬ ‫‪   ‬د ل‪  ‬دن‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪ ‬‬ ‫‪    ‬ن‪ ‬‬ ‫ای‪ ‬وا‬

‫‪ .‬‬

‫‪ ‬‬

‫ه در ورودی‪ ‬‬ ‫ت داده‬ ‫ورت‬ ‫دار‬

‫‪ ‬‬

‫ت‪  ‬ه‪   ‬را‪    ‬ز ‪ ‬و‪     ‬آ ‪ ‬ار ط‪ ' ‬ور‪  ‬دن'‪ ‬‬ ‫ن‪ ‬داده‪  ‬اف‪ ‬را‪  ‬ا ‪       ‬در‪ ‬آن‪ ‬‬ ‫‪     ‬‬

‫د ‪  .‬‬ ‫ن‬ ‫را‬ ‫ف( دو‬ ‫در‬ ‫وت‬ ‫)‬

‫‪ ‬‬

‫‪ .    ‬در‪ ‬ز ن‪  ‬اف‪ ،‬د ‪ ‬اول‪  ‬ح‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ارا ‪  ‬ه‪ ‬در‪ ‬وا ‪ ‬ا ‪  ‬اف‪ ‬را‪    ‬رت‪ ‬‬ ‫ی‪ ‬‬ ‫ا ر ‪ ‬‬

‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬را‪ ‬از‪  ‬وع‪    ‬ن‪ ‬‬ ‫‪    ‬دن‪ ‬ا ‪ ‬ا ر ‪ ‬آن‪ ‬ا ‪     ‬ا ا‪  ‬م‪ ‬‬ ‫ه‪  ‬ای‪ ‬‬

‫داد‪  .‬‬

‫‪ ‬‬

‫‪ ،‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬را‪ ‬ر ‪  ‬؟‪ ‬‬ ‫ی‪  ‬اف‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬روش‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬‬ ‫ب‪ ،‬آ ‪ ‬‬

‫‪ ‬‬ ‫‪  ‬و ‪   .‬ا ‪ ‬‬ ‫ن‪ ‬و‪    ‬ر‪    ‬م‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا ‪   ‬ا ‪ ‬ا ن‪ ‬را‪   ‬د ‪ ‬در‪   ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬
‫‪ ‬ا ‪ ‬و‪  ‬زی‪   ‬‬ ‫‪ ‬را‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫‪  ‬ن‪   ‬ر ‪    ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫او ‪  ‬ری‪   ‬در‪   ‬‬

‫‪ ‬اول‪ ‬ا ر ‪ ‬‬ ‫‪  ‬اف‪ ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪      ‬ن‪ ‬و د‪  ‬ارد‪  .‬ا ‪ ‬ا‬ ‫‪   ‬‬

‫د‪ .‬‬ ‫ا‬ ‫را‬

‫‪ ‬‬

‫‪ ‬‬ ‫‪ ‬ا ‪  .‬ای‪ ‬ر ‪ ‬ا ‪ ‬‬ ‫‪  ‬ور‪  ‬ی‪   ‬‬ ‫‪  ‬ای‪ ‬‬ ‫‪    ‬‬ ‫د‪ ‬‬ ‫‪ ‬‬ ‫ط‪   ‬‬ ‫ا اد‪ ‬دوم‪ ‬ا ر ‪ ‬‬

‫‪ ‬‬ ‫ده‪ ‬از‪ ‬‬ ‫‪ ‬را‪    ‬رت‪  ‬اف‪  ‬ق‪ ‬ذ ه‪   .  ‬ا‬ ‫‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ت‪ ‬را‪   ‬‬ ‫‪  ‬ا ‪ ‬ا ا‪  ‬ر‪   ‬‬

‫آور ‪ .‬‬ ‫را‬ ‫ور‬ ‫ت‬ ‫ا‬ ‫داز ‪،‬‬

‫‪ ‬‬

‫‪ L ‬ا ‪ .‬‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫‪ w^2 ‬‬ ‫‪  ‬د‪ .‬ا ‪ ‬‬ ‫‪ ‬د ‪ ‬‬ ‫‪    ‬‬ ‫‪  ‬ا ‪   ‬‬ ‫‪ ‬‬ ‫ا ‪  ‬ای‪ ‬‬

‫‪  .‬‬ ‫اف )‪O(L*w^2‬‬ ‫ا‬ ‫ا‬

‫‪ ‬‬

‫‪ .‬در‪  ‬اف‪  ‬ل‪  ‬ق‪ ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫ر‪   ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪  ‬ور ‪ ‬را‪  ‬ت‪ ،      ‬ا ‪ ‬‬ ‫‪  ‬ی‪ ‬آ ‪ ‬‬ ‫ر‪ ‬‬ ‫ا ‪ ‬‬

‫‪ ‬‬ ‫‪       ‬و ‪  ‬ا ‪ ‬از‪ ‬‬ ‫‪ ‬از‪  ‬ه‪ (  ‬دا ‪ ‬‬ ‫‪) ‬ز ‪  ‬ا ‪ ‬‬ ‫‪ ‬ا ‪    ‬اف‪   ‬‬ ‫ا اد‪  ‬ن‪    ‬د‪ :‬‬

‫‪  ‬ای‪  ‬ظ‪ ‬‬ ‫ت‪ cage, wage, rage ‬و د‪  ‬ارد‪   .‬ا ‪ ‬د‬ ‫ی‪   ‬‬ ‫‪  ‬وع‪   ‬‬ ‫‪   .‬از‪ ‬‬ ‫وع‪   ‬آ ‪ ‬‬

‫‪  ‬غ‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪  ‬اف‪    ‬ا ‪ ‬ا ‪ ‬را‪ ‬‬ ‫‪  ‬اف‪  ‬ورت‪ ‬و د‪  ‬ارد‪ .‬ا ‪   ‬از‪ ‬‬ ‫دن‪ ‬آ ‪ ‬در‪ ‬‬

‫ا ر و د دارد‪ .‬‬ ‫ا دو‬ ‫وا‬ ‫و‬ ‫غا‬

‫‪ ‬‬

‫‪   ‬ا س‪ ‬‬ ‫‪ ‬ا ‪ ‬ا ه‪ ‬‬ ‫‪ .‬‬ ‫ده‪ ‬‬ ‫‪  ‬اف‪ ‬ا‬ ‫‪  ‬غ‪ ‬و‪    ‬غ‪   ‬از‪ ‬روش‪ ‬د ی‪  ‬ای‪ ‬‬ ‫‪ ‬‬ ‫ای‪ ‬‬

‫‪  ‬دن‪    ‬ف‪ ‬ا ‪ ‬از‪ L ‬‬ ‫‪  ‬‬ ‫ات‪ ‬را‪    ‬ان‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ور‪ ‬در‪ ‬د‬ ‫‪  ‬ورت‪   ‬ذ ‪   ‬ر ‪ .‬‬

‫ت‪ ‬‬ ‫‪  ‬دن‪  ‬ف‪ ‬اول‪ ،‬و‪ ‬‬ ‫ت‪ … ،aell، bell, cell ‬و‪  ‬ه‪   ‬‬ ‫‪ ‬ا د‪  ‬د‪   .‬‬ ‫‪  ‬وف‪ ‬در‪   ‬‬
‫‪ ‬‬ ‫‪ ‬ا د‪   ‬‬ ‫‪     ‬ا ‪ ‬‬ ‫‪ .‬‬ ‫‪ tell ‬ا د‪   ‬‬ ‫‪ ‬دوم‪ ‬‬ ‫‪  ‬دن‪ ‬در‪ ‬‬ ‫‪   … ، tall، tbll، tcll‬‬

‫‪  .‬‬ ‫اول‬ ‫ور‬

‫‪ ‬‬

‫ده‪ ‬از‪ ‬ا ‪ ‬روش‪ ‬در‪ ‬‬ ‫‪  ‬ی‪ ،‬آن‪   ‬را‪  ‬د ن‪ ‬ا د‪   .    ‬ا‬ ‫‪ ‬‬ ‫ت‪ ‬داده‪  ‬ه‪  ‬ای‪ ‬‬ ‫ا ‪  ‬ی‪  ‬ر ‪   ‬‬

‫‪ .‬‬ ‫اف ز را ا د‬ ‫ا‬ ‫وا‬

‫‪ ‬‬

‫‪ ‬‬ ‫ی‬ ‫تو‬ ‫ه در روش ا د‬ ‫از اف‬

‫‪ ‬‬

‫‪   ‬‬ ‫ت‪ ‬داده‪  ‬ه‪ ‬و د‪  ‬ار ‪  .‬ای‪   ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫ت‪ ‬ا د‪  ‬ه‪ ‬ا ا ‪ ‬در‪ ‬‬ ‫‪ ‬آن‪ ‬ا ‪     ‬‬ ‫‪ ‬‬

‫ت‪ ‬داده‪  ‬ه‪   ‬‬ ‫‪ ‬‬ ‫‪   ‬آ ‪ ‬آن‪ ‬در‪ ‬‬ ‫‪ ،  ‬ا ا‪    ‬ر ‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬ا د‪  ‬ه‪  ‬ای‪ ‬‬ ‫ده‪ ‬از‪   ‬‬ ‫از‪ ‬ا‬
‫‪  ‬ه‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬د ‪   ‬آ ‪   ‬‬ ‫‪    ‬ا ‪ ‬‬ ‫‪ ‬‬ ‫‪ (set) ‬‬ ‫ن‪ ‬داده‪ ‬‬ ‫؟‪    ‬ب‪ ‬آن‪ ‬ا ‪   ‬‬

‫‪  .‬‬ ‫ه‬ ‫ت داده‬

‫‪ ‬‬

‫‪ .    ‬از‪ ‬آ ‪ ‬‬ ‫‪  ‬ور‪ ‬‬ ‫‪ L*26 ‬‬ ‫‪  ،‬ای‪   ‬‬ ‫ده‪ ‬‬ ‫‪ ‬ا‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫ت‪ ‬و‪ ‬‬ ‫ا ‪ ‬از‪ ‬روش‪ ‬ا د‪ ‬‬

‫‪   ‬‬ ‫‪  ‬ا ‪  w*L*26 ‬ا ‪  ‬د‪    ‬ای‪  ‬د ‪  ‬رگ‪ L ‬و‪ W ‬‬ ‫‪ ‬‬ ‫ه‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬دار ‪ ،‬‬ ‫‪ w  ‬‬

‫‪  ‬دازش‪ ‬‬ ‫ت‪ ‬‬ ‫‪   ‬از‪  ‬اف‪ ‬ا‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫‪   ‬ا ‪ .‬ا ر ‪ ‬‬ ‫ر‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫ا ر ‪ ‬‬

‫ل‪ ‬‬ ‫‪  W 2‬ا ‪ ‬‬ ‫‪ .‬‬ ‫) ‪  O(W * L + W 2‬‬ ‫‪ ‬‬ ‫‪ ‬دارای‪ ‬‬ ‫‪ ‬‬ ‫ده‪     ‬در‪ ‬‬ ‫ه‪ ‬ا‬

‫ت اف ا ‪  .‬‬ ‫او ا‬ ‫ط‬

‫‪ ‬‬

‫‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫ت‪ ‬و‪ ‬‬ ‫‪   ‬روش‪ ‬ا د‪ ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬دازش‪ ‬و‪ ‬‬ ‫‪ ‬روش‪ ‬‬ ‫ا‬

‫‪ ‬‬ ‫‪   ‬از‪ ‬‬ ‫‪ ،‬آ ه‪ ‬ا ر‬ ‫‪ ‬از‪  L ‬ر ‪ ‬‬ ‫‪ W ‬و‪ L ‬دارد‪ .‬ا ‪ W ‬‬ ‫ی‪ ‬وا‬ ‫‪    ‬را‬ ‫‪ ‬‬ ‫‪   ‬‬

‫‪ ‬و‪    ‬ر‪ ‬‬ ‫‪ ‬‬ ‫ت‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ‬دا ‪ .‬از‪  ‬ف‪ ‬د ‪ ،‬ا ‪   ‬در‪   ‬‬ ‫‪ ‬‬ ‫ده‪     ‬‬ ‫دازش‪ ‬ا‬

‫ر‪  ‬اف‪  ‬ورت‪   ‬را‪  ‬ز ‪ ‬و‪ ‬در‪  ‬ر ی‪ ‬د ‪ ‬از‪ ‬‬ ‫‪ ،‬آ ه‪  ‬ف‪         ‬‬ ‫ی‪ ‬داده‪ ‬‬ ‫‪  ‬وع‪ ‬و‪  ‬ن‪ ‬‬

‫د‪ .‬‬ ‫ا‬ ‫ا د اف را‬ ‫‪.‬ا‬ ‫ده‬ ‫آ ا‬

‫‪ ‬‬

‫‪   ‬ا ‪ .‬‬ ‫‪   ‬او‪    ‬ا ‪ ‬‬ ‫‪  ‬ام‪ ‬ا ر ‪  ‬ای‪  ‬ر‬ ‫ه‪ ‬در‪  ‬ن‪  ‬ار ‪ ‬و‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ا ‪ ‬ا ‪  ‬ارد‪ ‬را‪   ‬‬

‫ل‪ .    ‬در‪ ‬ا ‪ ‬‬ ‫‪ ‬ا‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫ت‪  ‬و ‪ ‬‬ ‫ه‪ ‬از‪ ‬ا ر ‪ ‬ا د‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪  ‬ض‪   ‬‬ ‫در‪ ‬ا‬

‫‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬‬ ‫‪ ‬در ‪  ‬ر‪ .    ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬‬ ‫رت‪ ‬ا ‪ ‬ا ر ‪ ‬روی‪   ‬داده‪ ‬ورودی‪ ‬‬

‫‪ .‬‬ ‫ا ر‬
 ‫در‬ ‫ ن‬   ‫ اه‬   ‫ را‬ ‫ ه‬ ‫داده‬ ‫ت‬      .(1  )     ‫در‬   ‫ی‬ ‫ را‬     ‫ ای‬   ‫م‬

   ‫در‬  ‫ا‬ ‫ر ه‬ ‫ ل‬     ‫در‬       ‫ م‬ ‫ ر ه‬   .(2  )  ‫ر‬   (set)   ‫داده‬ ‫ن‬  

     ‫ ار‬     ‫در‬   .(4  )  ‫ ز‬   ‫آن‬ ‫در‬ ‫ وع‬   ‫دادن‬ ‫ ار‬   ‫را‬       .(3  ) 

 ‫ازای‬   .(6  )     ‫در‬       ‫دادن‬ ‫ ار‬ ‫ ای‬     .(5  )  ‫رو‬        ٓ‫ا‬   ‫ر ن‬

 ‫ ره‬   ‫ ن‬        ‫ ر‬ ‫در‬ .      ‫ ن‬     ‫را‬   ‫آن‬ ‫ ر‬   (7  )     ‫در‬   

  ‫ا‬ ‫از‬     ‫ت‬  ‫ م‬ ‫ رت‬  ‫ا‬   ‫در‬ .(9 ‫و‬ 8  )  ‫ دا‬   ‫آن‬   ‫ر ن‬  ‫ ا‬ ‫ اد‬ ‫ ان‬   ‫را‬ 

 ‫در‬        ‫ ر‬ ‫در‬ .(14   11  )   ‫ ه‬ ‫داده‬ ‫ت‬    ‫در‬  ٓ‫ا‬         ‫و‬  ‫ ز‬   ‫را‬ 

 ‫ه‬  ‫از‬   (16  )     ‫ ف‬ ‫ت‬    ‫از‬ ‫و‬ (15  )      ‫ا‬       ‫را‬ ‫آن‬   ‫ت‬  

     ‫در‬ ‫را‬     ‫از‬   ‫ت‬  ‫ م‬     .  ‫ی‬      ‫ی‬  ‫در‬    ‫ا‬ ‫اری‬

  ‫ا‬ .(18  )     ‫در‬     ‫ ان‬   ‫را‬     ‫و‬ (17  )  ‫ا ا‬    ‫وا‬   ‫را‬   ‫ ر ه‬ ، ‫ا‬

 .(19 ) ‫دا‬ ‫ن مو د‬ ‫ را‬-1 ‫ار‬ ‫آ ه‬ ‫ن‬ ‫و‬ ‫م‬

 
1.​ def​ findShortestPath(beginWord, endWord, wordList):
2. wordList = set(wordList + [endWord])
3. layer_count = 0
4. layer = [beginWord]
5. ​while​ layer:
6. new_layer = []
7. ​for​ w ​in​ layer:
8. ​if​ w == endWord:
9. ​return​ layer_count
10. ​else​:
11. ​for​ i ​in​ range(len(w)):
12. ​for​ c ​in​ "abcdefghijklmnopqrstuvwxyz":
13. n_word = "{}{}{}".format(w[:i], c, w[i+1:])
14. ​if​ n_word ​in​ wordList:
15. new_layer.append(n_word)
16. wordList.remove(n_word)
17. layer_count += 1
18. layer = new_layer
19. ​return​ -1

 
‫در ول‪ ‬‬ ‫‪۳.۱۳‬‬

‫ی‪ ‬در‪  ‬ول‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬آ ‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪ ‬‬ ‫ی‪ ‬دار ‪ .‬ا ر‬ ‫‪ ‬‬ ‫‪    :‬ول‪ ‬از‪  ‬وف‪ ‬و‪   ‬‬
‫‪   ‬‬ ‫‪   ،‬‬ ‫‪ .‬دو‪  ‬ف‪  ‬ور ‪ ‬ا ‪ ،  ‬را ‪ ،‬‬ ‫‪ ‬ای‪    ‬وف‪ ‬آن‪ ‬در‪  ‬ول‪  ‬ور‪ ‬‬ ‫و د‪ ‬دارد‪ ‬‬
‫‪ .‬‬ ‫ده‬ ‫از ول دو ر ا‬ ‫ف در‬ ‫ا از‬ ‫‪.‬‬
‫ی‪ Faces ‬و‪  ‬ول‪ ‬ز ‪ ‬را‪ ‬دا ‪ ‬‬ ‫‪ ‬‬ ‫‪ .‬ا ‪ ‬‬ ‫‪   ‬آن‪ ‬را‪      ‬ل‪  ‬وع‪   ‬‬ ‫‪  :‬ای‪ ‬درک‪   ‬‬
‫‪  ‬وف‪  ‬ور‪ ‬‬ ‫‪ Faces ‬را‪ ‬از‪  ‬ر‪    ‬ا‬ ‫دا ‪ ‬ز ا‪    ‬ان‪ ‬‬ ‫‪ ،‬آ ه‪ ‬ا ر ‪    ‬ار‪ True ‬را‪ ‬‬
‫‪ .‬‬ ‫ها (‬ ‫ر‬ ‫ر‬ ‫ول )‬

‫‪ ‬‬
‫‪ ‬‬ ‫د ل آن‬ ‫ای‬ ‫تو‬ ‫از ول‬

‫‪ ‬‬
‫ت‪ ‬‬ ‫‪ ‬ا د‪   ‬‬ ‫‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬ا ر ‪ ‬‬ ‫‪ ‬را‪  ‬ح‪  .    ‬ای‪ ‬ا ‪ ‬‬ ‫ی‪ ‬‬ ‫ا ا‪ ‬ا ر ‪ ‬‬
‫‪ ‬‬ ‫‪ ‬آ ه‪  ‬ار‪ True ‬را‪ ‬‬ ‫‪  ‬ه‪ ‬‬ ‫ت‪ ‬‬ ‫ی ‪  ‬ن‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬از‪  ‬وف‪  ‬ور‪ ‬را‪  ‬ز ‪ .‬ا ‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬ ‫‪  ‬ول‪  ‬وع‪   ‬و‪ 4   ‬‬ ‫‪ ‬از‪  ‬وف‪  ‬ور‪ ‬در‪  ‬ول‪   ‬از‪   ‬‬ ‫ت‪ ‬‬ ‫‪  ‬م‪ ‬‬ ‫دا ‪  .‬ای‪ ‬‬
‫‪     ‬و‪ ‬‬ ‫‪   .‬‬ ‫ی‪ ‬از‪  ‬ول‪ ‬‬ ‫‪     ‬‬ ‫‪     ‬‬ ‫‪ .‬در‪ ‬‬ ‫‪ ‬‬ ‫‪ ،‬را ‪ ،‬و‪   ‬‬ ‫‪ ،‬‬
‫‪ ‬ا م‪   ‬د ‪      ‬ل‪ ‬‬ ‫د ‪ .‬ا ‪  ‬ر‪ ‬را‪   ‬ز‬ ‫‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ای‪ ‬ا م‪ ‬د ‪     ‬‬ ‫‪ ،‬را ‪ ‬و‪   ‬‬
‫‪  .‬‬ ‫ی‬ ‫آن را‬ ‫از ا د‬ ‫‪.‬‬ ‫ی‬ ‫دل ل‬ ‫ه‬ ‫ا د‬
‫‪ ‬‬
‫‪   .  ‬ا ‪  ‬رت‪     ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬ا د‪  ‬ه‪   ‬‬ ‫‪  ‬وف‪ ‬‬ ‫‪  ‬ر‬ ‫ا ‪ ‬روش‪ ‬را‪    ‬ا ‪   ‬‬
‫‪ ‬را‪ ‬ادا ‪   ‬‬ ‫ت‪ ‬از‪ ‬آن‪ ‬‬ ‫‪ ‬ا د‪ ‬‬ ‫‪  ‬ا ‪  ‬د ‪ ‬‬ ‫‪ .‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫اول‪ ‬را‪    ‬ف‪ ‬اول‪ ‬‬
‫‪     ‬راه‪ ‬‬ ‫‪   ‬ا ‪ ‬روش‪  ‬ار ‪ .‬ا ‪  ‬ی‪   ‬ا ‪   ‬‬ ‫‪   ‬‬ ‫‪   ‬ر ‪   ‬راه‪     ‬‬ ‫د ‪ .‬‬
‫‪ ‬ار ط‪      ‬ی‪  ‬ول‪ ‬و‪    ‬اف‪ ‬ا ‪ .‬در‪ ‬وا ‪      ‬ول‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪ ‬را‪   ‬درک‪ ‬‬
‫‪  .‬‬ ‫آن‬ ‫‪،‬و‬ ‫‪،‬‬ ‫را ‪،‬‬ ‫در‬ ‫ه‬ ‫و‬ ‫ه در اف ا‬
‫‪ ‬‬
‫‪  .‬ای‪  ‬ده‪  ‬زی‪  ‬ز‪ ‬‬ ‫‪ ‬در‪  ‬اف‪ ‬از‪    ‬ه‪ ‬آن‪   ‬‬ ‫ی‪ ‬‬ ‫‪  ‬ه‪ ‬در‪ ‬وا ‪   ‬‬ ‫‪ ‬ا ‪ ‬ا ر ‪ ‬‬
‫‪  ‬ن‪     ‬از‪  ‬ول‪  ‬ای‪ ‬‬ ‫‪  .‬ره‪ ‬‬ ‫‪  ‬اف‪   ‬‬ ‫م‪ ‬‬ ‫ت‪ ‬آ ‪   ‬روش‪ ‬‬ ‫‪  ‬ه‪   ‬و‪ ‬ا‬ ‫‪ ‬‬
‫‪ .‬‬ ‫ده‬ ‫ا‬ ‫در اف‬ ‫ه‬
‫‪ ‬‬ ‫‪ .(1  )     ‬‬ ‫‪ ‬را‪ ‬‬ ‫ی‪ ‬‬ ‫‪ .    ‬ا ا‪  ‬م‪   ‬و‪  ‬را‬ ‫‪ ‬ا ‪  ‬وع‪    ‬ده‪  ‬زی‪ ‬‬
‫ده‪ 2  )   ‬و‪   .(3 ‬‬ ‫‪    ‬ار ‪    ‬ا‪  ‬ا ‪ ‬را ‪ ‬از‪ ‬آ ‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬و‪  ‬ن‪  ‬ول‪ ‬را‪ ‬در‪ ‬‬ ‫اد‪ ‬‬
‫‪  ‬‬ ‫‪ ‬ا‬ ‫‪ ‬‬ ‫‪    ‬ان‪ ‬‬ ‫‪   ‬‬ ‫ی‪    ‬ار ‪ .(4  ) ‬‬ ‫ی‪ ‬را‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ل‪ ‬‬ ‫د ‪ ‬‬
‫‪  ‬ی‪ ‬ا ‪ ‬‬ ‫‪  ‬ار‪ ‬‬ ‫ز ‪ 5  ) ‬و‪ .(6 ‬در‪ ‬ادا ‪  ‬ده‪  ‬زی‪   ‬‬ ‫‪  ‬ی‪ ‬‬ ‫د ‪ ‬او ‪  False ‬ای‪   ‬‬
‫‪   ‬‬ ‫ل‪  ‬دن‪ ‬‬ ‫‪  .‬ای‪ ‬‬ ‫ی‪   ‬‬ ‫‪ ‬‬ ‫د‪    ‬ف‪ ‬در‪ ‬ا د‪   ‬‬ ‫ده‪ ‬‬ ‫ول‪ True   ‬از‪ ‬ا‬
‫‪ ‬‬ ‫‪ ‬دارای‪ ‬دو‪ ‬‬ ‫‪ ‬‬ ‫‪   .(7  ) ‬‬ ‫ده‪   ‬‬ ‫‪   ‬ا‬ ‫‪ ‬از‪ ‬‬ ‫‪ ‬از‪   ‬‬ ‫را ‪ ،  ،  ،‬و‪ ‬‬
‫‪  ‬ن‪   ‬د ‪ .‬‬ ‫‪  ‬ور‪ ‬‬ ‫‪ ‬و‪ ‬دو ‪ ‬در‪  ‬ن‪ ‬را‪  ‬ای‪ ‬ر ن‪   ‬‬ ‫‪ ‬در‪ ‬‬ ‫‪  ‬ان‪ ‬‬ ‫ا ‪   ‬او ‪ ‬‬
‫‪     (    seq ‬‬ ‫ی‪) ‬از‪ ‬ا‬ ‫‪ ‬‬ ‫‪ ‬ادا ‪ ‬‬ ‫‪ (i , j) ‬ول‪  ‬وع‪   ‬‬ ‫‪ dfs ‬در‪ ‬وا ‪ ‬از‪ ‬‬ ‫‪ ‬دا‬
‫‪  ‬ار‪   ‬در‪ ‬‬ ‫‪ 28   25   .    ‬در‪ ‬دو‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ ‬دا ‪ ‬ا ‪    ‬اغ‪ ‬‬ ‫) ‪   .(9 ‬از‪ ‬‬
‫‪ ‬‬ ‫‪  .‬ای‪ ‬‬ ‫‪ ‬‬ ‫ی‪ ‬را‪ ‬از‪     ‬‬ ‫‪ ‬‬ ‫ن‪       ‬آ ‪    ‬ان‪ ‬‬ ‫‪ ‬و‪ ‬ا‬ ‫‪ ‬را‪   ‬‬ ‫‪ ‬‬
‫‪ ‬ادا ‪   ‬د ‪ .‬ا ‪     ‬‬ ‫‪   ‬دا‬ ‫‪ ‬را‪  ‬ا ا ‪  .(27  )     ‬ل‪   ‬‬ ‫ا ‪ ‬ا ‪    ‬ر‪   ‬دا‬
‫ن‪  ‬وف‪  ‬ول‪ ‬در‪ ‬‬ ‫ه‪ ‬ا ‪ ‬و‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪     ‬ا ی‪ ‬‬ ‫‪ ‬ا ‪ ‬و‪  ‬د‪ ‬را‪  ‬ا ا ‪       ‬‬ ‫ز‬
‫‪ ‬‬ ‫‪ ‬را‪   ‬‬ ‫‪(i, j) ‬‬ ‫ی‪  ‬ا ‪   .‬ا ‪ ‬د ‪    ‬ر‪  ‬ف‪ ‬در‪ ‬‬ ‫‪ ‬‬ ‫ده‪  ‬ه‪    ‬وف‪ ‬‬ ‫‪ ‬‬
‫‪ ‬را‪ ‬ادا ‪   ‬د ‪ 22  ) ‬و‪ ‬‬ ‫‪ ‬ا ‪ ‬‬ ‫‪ .‬در‪  ‬ر ‪    ‬ا ‪ ‬‬ ‫‪   ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪ seq ‬در‪ ‬‬
‫ی‪ ‬در‪  ‬ول‪ ‬‬ ‫‪ ‬‬ ‫‪   ‬‬ ‫‪   ‬ا ‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫‪  ‬ف‪ ‬در‪ ‬‬ ‫‪ ‬و‪ ‬ا ‪ ‬آ‬ ‫‪ .(23‬در‪  ‬ر ‪    ‬ا ‪ ‬‬
‫‪   ‬ا ‪ (i, j)   ‬را‪  ‬ن‪  ‬اری‪     ‬‬ ‫ه‪ ‬‬ ‫ی‪ ‬‬ ‫‪ ‬‬ ‫د‪ ‬ا ‪ 11  ) ‬و‪ .(12 ‬ا ‪   ‬ا ی‪ ‬‬
‫‪ ‬‬ ‫‪ ‬در‪   ‬‬ ‫‪  ‬ی‪ ‬‬ ‫‪  ‬ای‪     ‬از‪ ‬‬ ‫‪ .(13  ) ‬‬ ‫ده‪ ‬‬ ‫‪ ‬از‪ ‬آن‪ ‬دو ره‪ ‬ا‬ ‫‪ ‬‬ ‫در‪ ‬ادا ‪ ‬‬
 ‫ رج‬    ‫ا‬        ‫ ر‬ ‫آ ه‬ .(16 ‫و‬ 15  )  ‫ ز‬   ‫را‬ ‫ ی‬ ‫ ی‬    ‫ا‬ (14  ) ‫ار‬
 ‫ رت‬ ‫در‬ .(18 ‫و‬ 17  )   ‫ ه‬ ‫ده‬ ‫ا‬    ‫ا‬ ‫در‬     ‫ رد‬     ‫و‬   ‫ده‬    ‫از‬
        ‫ ر‬ ‫در‬ .(19  )      ‫ ا ا‬  ‫ ز‬ ‫ رت‬   ‫را‬           ‫ا ن‬
 (i, j)   ‫ ن‬ ‫ د‬  ٓ‫ا‬        ‫ ر‬ ‫در‬ .(20  )  ‫د‬            ٓ‫ا‬ 
 .(22 ) ‫ده‬ ‫ت از آن ا‬ ‫ای‬ ‫ی ا‬ false ‫را‬
 
 
1. ​def​ find(self, board, word):
2. row_len = len(board)
3. col_len = len(board[0])
4. word_len = len(word)
5. checked = [[False for _ in range(col_len)] for _ in \
6. range(row_len)]
7. directions = [[0,1], [0, -1], [-1, 0], [1, 0]]
8.
9. ​def​ dfs(i, j, seq):
10. ​if​ board[i][j] == word[seq]:
11. ​if​ seq+1 == word_len:
12. ​return​ ​True
13. checked[i][j] = ​True
14. ​for​ d ​in​ directions:
15. ni = i+d[0]
16. nj = j+d[1]
17. ​if​ 0<=ni<row_len ​and​ 0<=nj<col_len\
18. ​and​ (​not​ checked[ni][nj]):
19. ​if​ dfs(ni, nj, seq+1):
20. ​return​ ​True
21.
22. checked[i][j] = ​False
23. ​return​ ​False
24.
25. ​for​ i ​in​ range(row_len):
26. ​for​ j ​in​ range(col_len):
27. ​if​ dfs(i, j, 0):
28. ​return​ ​True
20. ​return​ ​False

 
   
‫ن‪ ‬‬ ‫در ره‬
‫‪ ‬‬
‫‪ ،‬آ م‪ ‬‬ ‫د از‬ ‫ی‬ ‫د ر در‬ ‫ه رک ا و در ا‬ ‫دا‬ ‫م‬ ‫ر‬ ‫د رغ ا‬ ‫د‬
‫ی ا ان را دارا ‪ .‬‬ ‫در دا‬ ‫م‬ ‫در ر‬ ‫را دارد‪ .‬وه ا‬ ‫و‬
‫‪ ‬‬
‫‪ ‬‬
‫و ا ‪ ‬‬ ‫رک ا‬ ‫ه‬ ‫م ر ری در دا‬ ‫رس و‬ ‫از دا ه‬ ‫ر ر‬ ‫ی اه رغ ا‬ ‫د‬
‫را دارد‪ .‬‬ ‫آ‬ ‫ه ن‬ ‫ن در دوره ی دا‬ ‫ای دا آ زان ا اد ی در‬ ‫ن ر از‬ ‫در‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ب‪ :‬‬ ‫ا ن در ره ا‬
‫ز ن‪ ‬‬ ‫‪.‬‬ ‫ای‬ ‫ا ه رو آ ده‬ ‫‪,‬‬ ‫و‬ ‫ب ی آ زش از‬ ‫ا‬ ‫ب ی را‬ ‫'‬
‫ب ا ر رو ‪ ‬‬ ‫ا‬ ‫ت ای ن دا‬ ‫روی‬ ‫ور‬ ‫ا‬ ‫ای آ‬ ‫ع ا ت‬ ‫و‬ ‫د ن‬
‫ازم‪ ‬‬ ‫ا‬ ‫دو‬ ‫ز ن آ ده ی‬ ‫د‬ ‫ب رو م و‬ ‫ما‬ ‫از‬ ‫ا م ه‪.‬‬ ‫ا‬
‫‪ ‬‬ ‫ای ار و‬ ‫ا‬ ‫ت‬ ‫ب رو‬ ‫ب او ه د! ا‬ ‫ه‬
‫‪ ‬‬ ‫‪ '.‬‬ ‫ب‬ ‫ا ا‬ ‫ب‬ ‫ی‬ ‫ت‬ ‫ای‬ ‫دار‬ ‫ن‬
‫ه رک‪ ‬‬ ‫دا‬ ‫‪ ،‬دا ی م‬ ‫ا ن‬
‫‪ ‬‬

You might also like