- Thuật toán đơn giản dùng để giảm dung lượng bộ nhớ để lưu stringGiả sử ta cần lưu string như thế này: string1 = "ABCDAAB"Dễ thấy, với một ký tự trong string ta cần 1 byte hay 8 bít để biểu diễnVậy string1 sẽ cần 7 byte (7*8 = 56 bít) trong bộ nhớ.Vậy làm thế nào để lưu string này với ít hơn 7 byte?Cách 1:1. Dễ thấy string 1 được biểu diễn bới 4 ký tự: 'A', 'B', 'C', 'D'Bước 1: Lập 1 bảng hằng số để định nghĩa lại các ký tự nàyA là số 1 => A = 00000001B là số 2 => B = 00000010C là số 3 => C = 00000011D là số 4 => D = 00000100Bước 2: Nhìn bảng, ta thấy mỗi ký tự chỉ cần 3 bít để biểu diễnA là số 1 => A = 001B là số 2 => B = 010C là số 3 => C = 011D là số 4 => D = 100Bước 3: Biểu diễn string1 theo bảng hằng số vừa được định nghĩabefore: string1 = A B C D A A Bafter : string1 = 001 010 011 100 001 001 010Vậy rõ ràng, sau khi biến đổi, ta chỉ cần 3*7 = 21 bít (<56 bít) để biểu diễn string1Cách 2:For example, consider a screen containing plain black text on a solid white background. There will be many long runs of white pixels in the blank space, and many short runs of black pixels within the text. Let us take a hypothetical single scan line, with B representing a black pixel and W representing white:WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWWIf we apply the run-length encoding (RLE) data compression algorithm to the above hypothetical scan line, we get the following:12W1B12W3B24W1B14WCách này cũng có ưu điểm và nhược điểm nhất định, tùy từng trường hợp mà áp dụng cho phù hợp
Reference:
After complete coding one module in development branch. Next phase is merging. Obviously, you can merge source code automatically without no errors happen. However, life is not dream. Create a patch git diff HEAD > newTariff.patch Apply patch git apply newTariff.patch then problem happens Problem git apply newTariff.patch:106: trailing whitespace. patch does not apply Route cause: Nguyên nhân: Do trong source code có những dấu space thừa (ô vuông màu đỏ hình dưới) Some whitespaces is existed in your patch. (red area in below pictures) Fix Clean white space and patch again. Cách khắc phục Xóa những dấu space này đi và thực hiện patch lại Make up after complete coding. Find and clean whitespace before create patch file. Sửa sau khi code xong Kiểm tra sau khi code xong có lỗi này không git diff HEAD --check Prevent whitespace by manually when typing source code Sửa ngay khi đang code =>Bật chức năng hiển thị các dấu whitespace, hoặc remove trailing ...
Comments
Post a Comment