در این مطلب، ویدئو تبدیل ZigZag – Leetcode 6 – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:38
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:02,320
این ویدیو توسط دات آیو آموزشی حمایت شده
2
00:00:02,320 –> 00:00:05,359
3
00:00:05,359 –> 00:00:07,839
است و به کدهای آموزشی دات آیو بروید تا 10 عدد در اشتراک خود صرفه جویی
4
00:00:07,839 –> 00:00:09,920
کنید تا در یک لحظه به شما
5
00:00:09,920 –> 00:00:11,599
خوش آمدید و بیایید
6
00:00:11,599 –> 00:00:13,360
امروز کدهای دقیق تری بنویسیم، پس امروز بیایید
7
00:00:13,360 –> 00:00:16,400
کد نخبگان شش زیگزاگ کلاسیک دیگر را حل کنیم.
8
00:00:16,400 –> 00:00:18,640
تبدیل متعجبم که
9
00:00:18,640 –> 00:00:20,480
حل این یکی از ما اینقدر طول کشید، اما خیلی
10
00:00:20,480 –> 00:00:23,359
بد نیست، حتی اگر باز هم تعداد زیادی
11
00:00:23,359 –> 00:00:24,960
از آن را دوست نداشته باشیم، اما این بدترین
12
00:00:24,960 –> 00:00:27,279
مشکل موجود نیست، من مشکلات بسیار
13
00:00:27,279 –> 00:00:29,119
بدتر از این یکی را دیده ام، بنابراین ما دوباره
14
00:00:29,119 –> 00:00:32,479
یک رشته داده می شود که می گوید paypal در حال استخدام است
15
00:00:32,479 –> 00:00:34,239
من حدس می زنم که این مشکل در paypal ایجاد شده است
16
00:00:34,239 –> 00:00:36,640
و به ما گفته می شود که این
17
00:00:36,640 –> 00:00:39,760
رشته در یک الگوی زیگزاگ نوشته
18
00:00:39,760 –> 00:00:42,239
شده است و یک پارامتر ورودی دوم
19
00:00:42,239 –> 00:00:43,760
داده شده است، بنابراین رشته به ما داده می شود و ما یک
20
00:00:43,760 –> 00:00:46,879
پارامتر دوم به تعداد سطرها داده می شود و
21
00:00:46,879 –> 00:00:48,640
دانستن اینکه قرار است در
22
00:00:48,640 –> 00:00:51,600
یک الگوی زیگزاگی مانند این با زیگزاگ نوشته شود
23
00:00:51,600 –> 00:00:53,039
، معنی آنها این است، بنابراین شما
24
00:00:53,039 –> 00:00:55,600
از بالا سمت چپ شروع کنید، بنابراین ما کاراکتر به کاراکتر را ادامه می دهیم.
25
00:00:55,600 –> 00:00:58,239
26
00:00:58,239 –> 00:01:00,000
چارا اینجا را کلیک کنید تا بدانید که این یک
27
00:01:00,000 –> 00:01:02,239
نوع شکل زیگزاگ است، این ترتیبی است
28
00:01:02,239 –> 00:01:03,680
که می خواهید آن را بخوانید اگر
29
00:01:03,680 –> 00:01:05,360
بتوانید خطی را دنبال کنید که من درست می
30
00:01:05,360 –> 00:01:07,439
کشم اینطوری
31
00:01:07,439 –> 00:01:10,080
منظور آنها از زیگزاگ است. و بنابراین
32
00:01:10,080 –> 00:01:12,000
وقتی این الگوی زیگزاگ را می گیرید
33
00:01:12,000 –> 00:01:14,560
و آن را ردیف به ردیف می خوانید، به عنوان مثال
34
00:01:14,560 –> 00:01:16,880
، ردیف اول را بگیرید p-a-h-n و
35
00:01:16,880 –> 00:01:18,799
ردیف دوم را یک دسته
36
00:01:18,799 –> 00:01:20,640
کاراکتر می گیریم و ردیف آخر را برداریم،
37
00:01:20,640 –> 00:01:24,320
y-i-r می گیریم، بنابراین اگر آنها را وارد کنید که ترتیب
38
00:01:24,320 –> 00:01:25,520
39
00:01:25,520 –> 00:01:28,960
آن کاراکترهای تصادفی را میدانید و میدانید،
40
00:01:28,960 –> 00:01:30,400
سپس خروجی را دریافت میکنیم، این
41
00:01:30,400 –> 00:01:32,560
خروجی است که میخواهیم برگردانیم، بنابراین
42
00:01:32,560 –> 00:01:34,479
اساساً به ما یک رشته و
43
00:01:34,479 –> 00:01:35,920
تعدادی ردیف داده میشود و سپس میخواهیم آن را
44
00:01:35,920 –> 00:01:37,759
برگردانیم و اگر میخواهید بگیرید
45
00:01:37,759 –> 00:01:40,159
نگاهی دقیق به خروجی ورودی این
46
00:01:40,159 –> 00:01:42,399
مثال اول انجام می دهد، بنابراین بیایید سعی
47
00:01:42,399 –> 00:01:44,000
کنیم این مشکل را بفهمیم و آن را تجزیه کنیم
48
00:01:44,000 –> 00:01:46,000
و به جای استفاده از تعداد ردیف های
49
00:01:46,000 –> 00:01:47,360
برابر با سه، من در واقع از
50
00:01:47,360 –> 00:01:50,079
تعداد ردیف های برابر با چهار استفاده می کنم و سپس
51
00:01:50,079 –> 00:01:52,000
راه حل عمومی تبدیل می شود. واقعاً
52
00:01:52,000 –> 00:01:53,680
واضح است که فکر می کنم وقتی می بینید خوب در این
53
00:01:53,680 –> 00:01:56,240
مثال خوب است پس بیایید به مثال دیگری نگاهی بیندازیم،
54
00:01:56,240 –> 00:01:58,479
بنابراین این همان چیزی است که ما
55
00:01:58,479 –> 00:02:00,240
تقریباً به سمت راست رفتیم، مثال
56
00:02:00,240 –> 00:02:02,079
با سه ردیف، بیایید به
57
00:02:02,079 –> 00:02:04,640
مثال چهار ردیف سمت راست نگاهی بیندازیم، بنابراین
58
00:02:04,640 –> 00:02:06,399
این رشته ورودی بالای سمت راست
59
00:02:06,399 –> 00:02:08,160
i است. آن را در یک الگوی زیگزاگ نوشتیم، بنابراین
60
00:02:08,160 –> 00:02:09,440
اینجاست که ما نویسه اول را
61
00:02:09,440 –> 00:02:12,560
دوم سوم چهارم پنجم ششم هفتم قرار می دهیم
62
00:02:12,560 –> 00:02:14,480
و سپس همین حالا همینطور ادامه می
63
00:02:14,480 –> 00:02:16,160
دهیم اولین چیزی که احتمالاً باید به آن
64
00:02:16,160 –> 00:02:18,400
فکر کنید این است که چگونه می توانید
65
00:02:18,400 –> 00:02:19,760
ردیف اول را درست بخوانید زیرا ما
66
00:02:19,760 –> 00:02:21,280
سطر به سطر می رویم بیایید ردیف اول را
67
00:02:21,280 –> 00:02:23,599
بخوانیم سپس ردیف دوم را سوم و
68
00:02:23,599 –> 00:02:26,720
چهارم بخوانیم، پس چگونه می توانیم ردیف اول را به
69
00:02:26,720 –> 00:02:29,840
خوبی بخوانیم اولین کاراکتر در
70
00:02:29,840 –> 00:02:31,680
رشته ورودی که در بالا داده شده است
71
00:02:31,680 –> 00:02:33,840
در اینجا درست اولین
72
00:02:33,840 –> 00:02:37,200
کاراکتر است. p درست است، بنابراین این اولین
73
00:02:37,200 –> 00:02:38,720
کاراکتر در ردیف اول است، واضح است که
74
00:02:38,720 –> 00:02:41,360
دقیقاً دقیقاً در شاخص صفر است، بنابراین
75
00:02:41,360 –> 00:02:44,480
اکنون چند نقطه در این
76
00:02:44,480 –> 00:02:46,400
رشته ورودی تا آخر بالا در چند نقطه
77
00:02:46,400 –> 00:02:48,319
باید پرش کنیم تا به این
78
00:02:48,319 –> 00:02:49,680
کاراکتر برسیم که ما درست می خواهیم ما می
79
00:02:49,680 –> 00:02:51,519
خواهیم به شخصیت بعدی برسیم چند نقطه
80
00:02:51,519 –> 00:02:53,519
باید خوب بپریم، فقط آنها را درست بشماریم
81
00:02:53,519 –> 00:02:56,879
، یک دو سه چهار
82
00:02:56,879 –> 00:02:59,840
پنج و سپس شش تا در نهایت به اینجا
83
00:02:59,840 –> 00:03:02,319
برسیم، آیا راهی وجود دارد که بتوانیم تشخیص دهیم
84
00:03:02,319 –> 00:03:04,800
که می دانید با یک الگوریتم
85
00:03:04,800 –> 00:03:07,200
خوب نگاه کنید به ما چهار ردیف به سمت راست داده می شود،
86
00:03:07,200 –> 00:03:09,840
بنابراین سه تا طول می کشد که از اینجا
87
00:03:09,840 –> 00:03:12,000
شروع می کنیم، از بالا سمت چپ شروع می کنیم، سه
88
00:03:12,000 –> 00:03:13,920
پرش طول می کشد تا به اینجا برسیم و سپس
89
00:03:13,920 –> 00:03:16,159
سه پرش طول می کشد تا به ردیفی که ما برمی گردیم.
90
00:03:16,159 –> 00:03:18,400
درست است، بنابراین در واقعیت
91
00:03:18,400 –> 00:03:20,959
اساساً شما تعداد پرشهایی را میدانید
92
00:03:20,959 –> 00:03:22,480
که باید هر بار انجام دهیم
93
00:03:22,480 –> 00:03:24,400
تا به شخصیت بعدی برسیم، از جمله اگر
94
00:03:24,400 –> 00:03:26,959
میخواهیم از این کاراکتر برویم، من یک
95
00:03:26,959 –> 00:03:29,599
دو سه چهار پنج شش درست برای رسیدن به آن.
96
00:03:29,599 –> 00:03:31,680
این کاراکتر بعدی در ردیف ما باید
97
00:03:31,680 –> 00:03:33,599
98
00:03:33,599 –> 00:03:37,680
تعداد ردیفهای چهار منهای یک راست ضرب
99
00:03:37,680 –> 00:03:39,440
در دو سمت راست را طی کنیم، زیرا تا انتها به
100
00:03:39,440 –> 00:03:41,280
سمت پایین میرویم و سپس تمام
101
00:03:41,280 –> 00:03:42,640
مسیر را به سمت بالا میرویم، به همین دلیل است که ما در
102
00:03:42,640 –> 00:03:44,799
دو ضرب می کنیم بنابراین در رشته
103
00:03:44,799 –> 00:03:46,480
به st هنر در شاخص 0 و
104
00:03:46,480 –> 00:03:48,239
سپس ما 6 را اضافه می کنیم، سپس
105
00:03:48,239 –> 00:03:50,480
دوباره 6 را به ایندکس اضافه می کنیم
106
00:03:50,480 –> 00:03:51,840
تا به کاراکتر بعدی برسید، بنابراین
107
00:03:51,840 –> 00:03:54,000
خواندن ردیف اول آسان است، اما اینجاست که
108
00:03:54,000 –> 00:03:55,760
همه چیز کمی پیچیده می شود. وقتی
109
00:03:55,760 –> 00:03:58,239
به ردیف دوم رسیدیم، پس در
110
00:03:58,239 –> 00:03:59,840
ردیف دوم قرار گرفتیم، در اولین کاراکتر
111
00:03:59,840 –> 00:04:01,760
a هستیم و چگونه میخواهیم به
112
00:04:01,760 –> 00:04:03,439
جای شروع از شاخص 0، از اینجا خوب شروع کنیم،
113
00:04:03,439 –> 00:04:04,879
میتوانیم فقط از شاخص 1 شروع کنیم. پس ما
114
00:04:04,879 –> 00:04:07,519
میخواهیم بگوییم رشتهای در شاخص 1 برای شروع
115
00:04:07,519 –> 00:04:08,560
116
00:04:08,560 –> 00:04:10,480
از این ردیف درست است، بنابراین،
117
00:04:10,480 –> 00:04:12,720
اکنون ساده است که چگونه میتوانیم
118
00:04:12,720 –> 00:04:14,480
کل این ردیف از کاراکترها
119
00:04:14,480 –> 00:04:15,920
را دریافت کنیم، اگر همان کاری
120
00:04:15,920 –> 00:04:18,000
را انجام دهیم که اگر شش نقطه برویم، چه اتفاقی
121
00:04:18,000 –> 00:04:21,680
میافتد. دو سه چهار پنج
122
00:04:21,680 –> 00:04:23,520
شش پس به اینجا می رسیم اگر دوباره این کار را انجام دهیم
123
00:04:23,520 –> 00:04:28,240
یک دو سه چهار پنج شش پس
124
00:04:28,240 –> 00:04:31,600
ما سه کاراکتر در این ردیف داریم اما
125
00:04:31,600 –> 00:04:34,160
سوال این است که آیا چیزی را از دست داده ایم و
126
00:04:34,160 –> 00:04:37,040
بله ما نگاهی بیندازیم این ردیف
127
00:04:37,040 –> 00:04:39,040
بیش از سه کاراکتر دارد. کاراکترها درست است که ما
128
00:04:39,040 –> 00:04:41,199
این سه را دریافت کردیم اما این شخصیت
129
00:04:41,199 –> 00:04:43,360
را از دست دادیم و این شخصیت و wh را از دست دادیم y
130
00:04:43,360 –> 00:04:45,680
دقیقاً این است که نگاهی به یک
131
00:04:45,680 –> 00:04:48,880
زیگزاگ به سمت راست میاندازیم، یک زیگزاگ منفرد
132
00:04:48,880 –> 00:04:51,600
این است
133
00:04:51,600 –> 00:04:53,600
که اول ردیف اول زیگزاگ فقط یک
134
00:04:53,600 –> 00:04:55,199
کاراکتر درست دارد و سپس یک
135
00:04:55,199 –> 00:04:58,160
زیگزاگ دیگر در اینجا داریم، همچنین ردیف اول
136
00:04:58,160 –> 00:04:59,600
فقط یک کاراکتر دارد. در این
137
00:04:59,600 –> 00:05:02,080
ردیف زیگزاگ انفرادی سمت راست، ردیف دوم
138
00:05:02,080 –> 00:05:04,080
در واقع دارای دو کاراکتر در
139
00:05:04,080 –> 00:05:05,680
زیگزاگ است،
140
00:05:05,680 –> 00:05:09,120
ردیف سوم نیز دارای دو کاراکتر
141
00:05:09,120 –> 00:05:12,880
در زیگزاگ ردیف آخر است، هرچند که
142
00:05:12,880 –> 00:05:14,800
شبیه به ردیف اول است، نه
143
00:05:14,800 –> 00:05:16,880
فقط یک کاراکتر درست فقط یک
144
00:05:16,880 –> 00:05:19,600
کاراکتر دارد. در ردیف آخر زیگزاگ
145
00:05:19,600 –> 00:05:21,039
درست اگر بخواهیم شخصیت بعدی
146
00:05:21,039 –> 00:05:22,960
زیگزاگ
147
00:05:22,960 –> 00:05:24,800
را بدست آوریم چند نقطه باید بپریم تا بدانیم برای
148
00:05:24,800 –> 00:05:27,039
اولین نقطه باید شش نقطه
149
00:05:27,039 –> 00:05:29,039
برای آخرین نقطه پرش کنیم باید شش نقطه نیز بپریم.
150
00:05:29,039 –> 00:05:31,600
لکه می کند زیرا فقط یک موقعیت
151
00:05:31,600 –> 00:05:34,720
در یک زیگزاگ به راست دارد، اگر یک دو سه
152
00:05:34,720 –> 00:05:37,280
چهار پنج شش برویم، کاراکتر بعدی را
153
00:05:37,280 –> 00:05:38,560
درست می گیریم و این برای ما کافی است تا
154
00:05:38,560 –> 00:05:40,800
ردیف پایین را بگیریم، بنابراین ردیف اول و
155
00:05:40,800 –> 00:05:44,320
ردیف پایین می توانند هر کدام فقط شش پرش داشته باشند.
156
00:05:44,320 –> 00:05:47,039
و مشابه تمام ردیفهای دیگر
157
00:05:47,039 –> 00:05:49,199
نیز میتوانند شش پرش درست برای این کار داشته باشند،
158
00:05:49,199 –> 00:05:51,039
اگر شش پرش انجام دهیم، به
159
00:05:51,039 –> 00:05:52,479
اینجا میرسیم، شش پرش میکنیم، به اینجا میرسیم، اما
160
00:05:52,479 –> 00:05:54,000
فقط باید مطمئن شویم که
161
00:05:54,000 –> 00:05:56,720
این کاراکترهای میانی را میگیریم، بنابراین برای هر
162
00:05:56,720 –> 00:06:00,400
ردیفی که نه ردیف اول و نه
163
00:06:00,400 –> 00:06:03,280
ردیف آخر که باید اوه دو را
164
00:06:03,280 –> 00:06:04,560
بگیریم، باید
165
00:06:04,560 –> 00:06:07,039
کاراکتر دوم زیگزاگ را بدست آوریم، پس
166
00:06:07,039 –> 00:06:08,479
چگونه میخواهیم این کار را
167
00:06:08,479 –> 00:06:10,479
انجام دهیم که الگوریتم آن چاه
168
00:06:10,479 –> 00:06:12,800
چیست؟ به شماره ردیف بستگی دارد،
169
00:06:12,800 –> 00:06:16,720
بنابراین بیایید اعداد سطر را 0 1 2 و
170
00:06:16,720 –> 00:06:18,880
3 بشماریم. و به یاد داشته باشید
171
00:06:18,880 –> 00:06:21,120
که این مرحله اضافی را فقط برای
172
00:06:21,120 –> 00:06:23,120
ردیف های وسط انجام می دهیم، نه ردیف اول و نه
173
00:06:23,120 –> 00:06:25,919
ردیف آخر را به خوبی انجام می دهیم. دقیقاً در این نقطه
174
00:06:25,919 –> 00:06:27,440
هستیم چگونه شخصیت دوم را بدست آوریم
175
00:06:27,440 –> 00:06:28,880
تا مطمئن شویم که آن را به خوبی از دست نمی دهیم.
176
00:06:28,880 –> 00:06:30,720
177
00:06:30,720 –> 00:06:33,039
178
00:06:33,039 –> 00:06:35,120
179
00:06:35,120 –> 00:06:37,120
بنابراین آیا همیشه چهار
180
00:06:37,120 –> 00:06:39,280
پرش خواهد بود خوب یک ثانیه نگه دارید زیرا
181
00:06:39,280 –> 00:06:41,680
اینطور نیست بیایید نگاهی به
182
00:06:41,680 –> 00:06:43,120
اگر از اینجا شروع می کنیم و نمی خواهیم
183
00:06:43,120 –> 00:06:45,440
شخصیت دوم را از دست بدهیم که این کاراکتر
184
00:06:45,440 –> 00:06:47,440
درست است، قطعاً می
185
00:06:47,440 –> 00:06:49,039
توانیم این یکی را بگیریم زیرا
186
00:06:49,039 –> 00:06:51,199
دقیقاً شش پرش طول می کشد تا به اینجا برسیم، اما ما
187
00:06:51,199 –> 00:06:53,039
نمی خواهیم برای از دست دادن این یکی در این بین،
188
00:06:53,039 –> 00:06:54,880
پس چگونه به این خوبی برسیم، بیایید بشماریم
189
00:06:54,880 —