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