در این مطلب، ویدئو طولانی ترین زیر رشته بدون نویسه های تکراری – Leetcode 3 – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:06:45
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:02,580
طولانیترین زیررشته کد نشتی 3 را
2
00:00:02,580 –> 00:00:04,620
بدون تکرار کاراکترها حل میکند یا به
3
00:00:04,620 –> 00:00:06,930
مشکل کد نشت کلاسیک برمیگردد، سومین مسئله
4
00:00:06,930 –> 00:00:09,090
بسیار ساده است.
5
00:00:09,090 –> 00:00:11,219
6
00:00:11,219 –> 00:00:13,500
7
00:00:13,500 –> 00:00:15,780
8
00:00:15,780 –> 00:00:18,060
سه کاراکتر تکراری ندارند
9
00:00:18,060 –> 00:00:22,740
ABC این یکی دو A دارد
10
00:00:22,740 –> 00:00:25,410
بنابراین بدون تکرار کاراکترها به عنوان یک زیر رشته به حساب نمی آید
11
00:00:25,410 –> 00:00:27,060
و ما فقط
12
00:00:27,060 –> 00:00:28,590
باید طول این زیررشته را برگردانیم
13
00:00:28,590 –> 00:00:31,410
بنابراین اولین ایده ای که
14
00:00:31,410 –> 00:00:33,690
به ذهن من می رسد حداقل بسیار ساده است.
15
00:00:33,690 –> 00:00:35,940
هر زیررشته ای را بررسی کنید
16
00:00:35,940 –> 00:00:37,860
اگر تکراری داشته باشد، بررسی کنید، اگر چنین نیست،
17
00:00:37,860 –> 00:00:39,030
پس ما فقط
18
00:00:39,030 –> 00:00:41,100
طولانی ترین یکی از آن رشته ها را می گیریم و طول آن را برمی
19
00:00:41,100 –> 00:00:43,350
گردانیم، بنابراین چگونه آن الگوریتم
20
00:00:43,350 –> 00:00:45,480
به خوبی اجرا می شود، ابتدا از ما شروع می کنیم
21
00:00:45,480 –> 00:00:47,850
میخواهید هر زیررشتهای را با یک شروع کنید، بنابراین
22
00:00:47,850 –> 00:00:49,590
فقط این یکی چاهی است که
23
00:00:49,590 –> 00:00:51,809
هیچ تکراری ندارد، B که هیچ
24
00:00:51,809 –> 00:00:54,300
تکراری ندارد، C که هیچ
25
00:00:54,300 –> 00:00:56,460
تکراری هم ندارد و سپس به
26
00:00:56,460 –> 00:00:58,980
این اولین تکراری a میرسیم. ما در حال حاضر دو A داریم،
27
00:00:58,980 –> 00:01:00,930
اما به یاد داشته باشید که ما در حال بررسی
28
00:01:00,930 –> 00:01:04,049
هر صفحه فرعی هستیم که ابتدا از این شروع میشود،
29
00:01:04,049 –> 00:01:06,210
بنابراین این الگوریتم را
30
00:01:06,210 –> 00:01:08,520
ادامه میدهیم، حتی اگر بعد از آن نیازی به هر
31
00:01:08,520 –> 00:01:11,939
زیررشتهای که دریافت میکنیم نداشته باشیم، مثلاً ببینیم چگونه
32
00:01:11,939 –> 00:01:13,650
کار میکنیم. هر زیر رشته
33
00:01:13,650 –> 00:01:16,619
بعد از آن نیز دارای موارد تکراری خواهد بود، بنابراین
34
00:01:16,619 –> 00:01:19,610
آیا ما حتی باید همه اینها را بررسی کنیم
35
00:01:19,610 –> 00:01:23,100
که با مقدار شروع می شوند a این کار تکراری است
36
00:01:23,100 –> 00:01:24,750
که با
37
00:01:24,750 –> 00:01:27,600
تکنیک بسیار اساسی خود پنجره کشویی را حذف
38
00:01:27,600 –> 00:01:30,990
می کنیم، بنابراین می خواهیم فقط زیر را بررسی کنیم.
39
00:01:30,990 –> 00:01:32,820
رشتهها بدون هیچ کاراکتر تکراری،
40
00:01:32,820 –> 00:01:34,740
بنابراین اجازه دهید در واقع این کار را انجام دهیم، اجازه
41
00:01:34,740 –> 00:01:37,650
دهید مطمئن شویم که پنجره سمت راست ما
42
00:01:37,650 –> 00:01:41,009
آرایه فرعی ما زیررشته ما همیشه
43
00:01:41,009 –> 00:01:44,610
حاوی هیچ تکراری نیست، بنابراین وقتی
44
00:01:44,610 –> 00:01:47,549
به این بعدی رسیدیم، میگوییم خوب حالا
45
00:01:47,549 –> 00:01:49,409
باید یک باید شروع به
46
00:01:49,409 –> 00:01:51,869
برداشتن از بال چپ کنیم تا شروع به
47
00:01:51,869 –> 00:01:55,470
کوچک کردن پنجره کشویی خود کنیم تا زمانی که
48
00:01:55,470 –> 00:01:58,020
دیگر موارد تکراری نداشته باشیم، بنابراین میخواهم بگویم
49
00:01:58,020 –> 00:02:02,490
این یکی را از زیر رشته خود حذف کنید، اکنون
50
00:02:02,490 –> 00:02:05,729
رشته فرعی ما از اینجا از
51
00:02:05,729 –> 00:02:08,669
B تا a now i اجرا میشود. t کاملاً
52
00:02:08,669 –> 00:02:11,038
معتبر است، بنابراین اکنون می توانیم ادامه دهیم،
53
00:02:11,038 –> 00:02:13,290
طول آن هنوز فقط سه است، اما اکنون
54
00:02:13,290 –> 00:02:15,510
بنابراین ما این مهره را اضافه می کنیم، اما یک دقیقه صبر کنید
55
00:02:15,510 –> 00:02:17,939
حالا دو زنبور داریم، اما
56
00:02:17,939 –> 00:02:19,920
سوال من این است که چگونه می توانیم
57
00:02:19,920 –> 00:02:22,650
بلافاصله بفهمیم که آیا یک نسخه تکراری داریم یا نه
58
00:02:22,650 –> 00:02:25,799
خوب نیست، ما میتوانیم از مجموعهای استفاده کنیم که
59
00:02:25,799 –> 00:02:28,140
مجموعهها فقط شامل یکی از هر کاراکتر
60
00:02:28,140 –> 00:02:30,120
باشند، بنابراین به طور خودکار میدانیم اگر یک
61
00:02:30,120 –> 00:02:33,180
نسخه تکراری داریم، میتوانیم فوراً آن را بررسی کنیم، بنابراین
62
00:02:33,180 –> 00:02:34,500
میخواهیم بررسی کنیم که دو
63
00:02:34,500 –> 00:02:36,870
زنبور داریم، بنابراین اکنون
64
00:02:36,870 –> 00:02:38,189
از سمت چپ ادامه میدهیم،
65
00:02:38,189 –> 00:02:40,349
پنجرهمان را از سمت چپ کوچک میکنیم تا زمانی
66
00:02:40,349 –> 00:02:43,409
که نخواهیم داشت تا زمانی که یک زنبور را
67
00:02:43,409 –> 00:02:45,239
برداریم و خواهیم دید که اولین کسی که
68
00:02:45,239 –> 00:02:46,889
حذف میکنیم، Beast است و اکنون این کار را انجام
69
00:02:46,889 –> 00:02:49,739
دادیم اکنون زیررشته ما از این C تا این D اجرا می شود،
70
00:02:49,739 –> 00:02:52,530
حالا
71
00:02:52,530 –> 00:02:55,470
یک کاراکتر دیگر اضافه می کنیم،
72
00:02:55,470 –> 00:02:57,840
یک تکراری داریم و یک بار دیگر می توانیم
73
00:02:57,840 –> 00:02:59,970
به معنای واقعی کلمه فقط دورترین کاراکتر سمت چپ را حذف کنیم
74
00:02:59,970 –> 00:03:02,370
و حالا دیگر اعتبار نداریم.
75
00:03:02,370 –> 00:03:03,930
موارد تکراری که در تمام طول
76
00:03:03,930 –> 00:03:09,419
مسیر از A تا C اجرا می کنیم، سپس یک B را اضافه می کنیم
77
00:03:09,419 –> 00:03:12,299
نکته جالب در مورد این این است که اکنون
78
00:03:12,299 –> 00:03:14,340
باید این a را حذف کنیم زیرا باید
79
00:03:14,340 –> 00:03:16,200
پنجره خود را کوچک کنیم رشته فرعی ما باید
80
00:03:16,200 –> 00:03:18,120
به هم پیوسته باشد بنابراین باید
81
00:03:18,120 –> 00:03:21,090
این a را حذف کنیم اما توجه داشته باشید که هنوز دو زنبور
82
00:03:21,090 –> 00:03:22,919
در زیر رشته خود داریم بنابراین باید یکی دیگر را حذف کنیم.
83
00:03:22,919 –> 00:03:25,319
کاراکتر ما باید این B را حذف کنیم، بن
84
00:03:25,319 –> 00