Hướng dẫn python string deduplication - chuỗi trùng lặp python
Trước hết, chức năng 1 của bạn thực sự rất nhanh. Nhưng có thể có một số cải tiến được thực hiện để làm cho nó thậm chí còn nhanh hơn. Tôi đã 2 hóa chức năng của bạn và gọi nó là 3 (bên dưới). Bây giờ trong một thời gian kiểm tra (sử dụng 4 của Ipython): Show
Nhưng 5 thực sự không cần thiết và thậm chí có thể cung cấp cho bạn kết quả bất ngờ (nếu bạn không được lặp lại khoảng trắng) để chúng tôi có thể thử:
Điều này tăng tốc mọi thứ lên một chút nhưng nó không phải là tất cả ấn tượng. Hãy thử một cách tiếp cận khác ... Biểu thức thông thường. Đây cũng rất tốt vì chúng cung cấp cho bạn sự linh hoạt để chọn bất kỳ biểu thức chính quy nào làm "nhân vật" của bạn để sao chép (không chỉ một char duy nhất):
Cái thứ hai nhanh hơn nhưng thậm chí không gần với chức năng ban đầu của bạn. Có vẻ như các hoạt động chuỗi thông thường nhanh hơn các hàm 6. Điều gì sẽ xảy ra nếu chúng ta thử zipping thay thế (sử dụng 7 nếu làm việc với Python 2):
Vẫn không cải thiện. Phương pháp ZIP làm cho quá nhiều chất nền làm cho việc làm 8 chậm. Được rồi, hãy thử thêm ... những gì về 9 được gọi là đệ quy:
Không tệ, đó dường như là người chiến thắng của chúng tôi. Nhưng chỉ cần chắc chắn, hãy thử nó chống lại chức năng ban đầu của chúng tôi với một chuỗi đầu vào thực sự dài:
Yup, có vẻ như nó tỷ lệ độc đáo. Nhưng hãy thử thêm một bài kiểm tra, bộ ghép đệ quy chỉ loại bỏ các ký tự trùng lặp có độ dài 2 mỗi lần được gọi. Vì vậy, nó vẫn làm tốt hơn với các ký tự trùng lặp dài:
Nó sẽ mất một số lợi thế của nó khi có các chuỗi dài các ký tự lặp đi lặp lại để loại bỏ. Tóm lại, sử dụng chức năng ban đầu của bạn (với một vài điều chỉnh có thể) nếu chuỗi của bạn sẽ có các phần dài các ký tự lặp lại. Nếu không, phiên bản đệ quy là nhanh nhất. 4 9 6 7Examples:
Vấn đề này có giải pháp hiện tại Vui lòng tham khảo Xóa tất cả các bản sao khỏi một chuỗi đã cho. & NBSP; Phương pháp 1: & NBSP; Python3 0 1 2 3 4 5 6 7 8 9 0 1 2 6 4 4 6 6 7 8 9 1 6 4 4 5 6 6 8 9 8 6 6 3 8 5 2 7 8 6 4 8 5 2 4 5 6 4Đầu ra Without Order = foskerg With Order = geksfor Độ phức tạp về thời gian: O (N) Không gian phụ trợ: O (N) Phương pháp 2: & NBSP; Python3 4 9 6 7 8Without Order = foskerg With Order = geksfor3 6 1 2 6Without Order = foskerg With Order = geksfor8 8Without Order = foskerg With Order = geksfor3 6Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor2 8 5 2Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor6 Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor7 8Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor9 6{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])1 8{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])3 {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])4 {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])5 6 9{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])8 4 00{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])5 02 03 04{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])8 06 9 03Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor9 6Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor9 12 13{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])8 5 2 17 18 6 6 3 9 6Without Order = foskerg With Order = geksfor8 Đầu ra Without Order: kogerfs With Order: g With Order: ge With Order: ge With Order: gek With Order: geks With Order: geksf With Order: geksfo With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor With Order: geksfor Độ phức tạp về thời gian: O (N) Không gian phụ trợ: O (N) O(n) Đặt hàng và FromKeys () đặt hàng làm gì? Một đơn đặt hàng là một từ điển nhớ rằng thứ tự của các khóa được chèn đầu tiên. Nếu một mục mới ghi đè lên một mục nhập hiện có, vị trí chèn ban đầu không thay đổi. Ví dụ: xem đoạn mã bên dưới: & nbsp; Python3 0 1 2 3 29 6 31 32 33 34 6 36 32 38 34 6 41 32 43 34 6 46 32 48 34 6 51 32 53 34 6 56 5 58 59 6 61 62 33 34 6 36 62 38 34 6 41 62 43 34 6 46 62 48 34 6 51 62 53 34 6 56 5 88Đầu ra {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]) Độ phức tạp về thời gian: O (N) Không gian phụ trợ: O (N) Đặt hàng và FromKeys () đặt hàng làm gì? creates a new dictionary with keys from seq and values set to value and returns list of keys, fromkeys(seq[, value]) is the syntax for fromkeys() method. Parameters :
Ví dụ: xem đoạn mã bên dưới: & nbsp; Python3 0 1 2 3 29 6 31 32 33 34 6 36 32 38 34 6 41 32 43 34 6 46 32 48 34 6 51
Đầu ra 0Độ phức tạp về thời gian: O (N) Không gian phụ trợ: O (N) Đặt hàng và FromKeys () đặt hàng làm gì?Shashank Mishra (Gullu). If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks. |