Bài đăng

Đang hiển thị bài đăng từ Tháng 6, 2023
 Tối nay sẽ làm bài leetcode này: 39. Combination Sum https://leetcode.com/problems/combination-sum/ Vấn đề thì quá rõ rồi chỉ còn xem mình tính giải quyết thế nào thôi =))
Hãy học về hệ thống Linux Địa điểm học thứ nhất ở đây: https://www.javatpoint.com/linux-tutorial Trang này hướng dẫn đẩy đủ mọi thứ về cái hệ điều hành Linux và thành phần. Trước hết hôm nay mình học được chút ít về các bước mà một hệ điều hành Linux khởi động và cấu hình các thành phần của nó: link  ( Linux Boot Process Step-by-Step Explained) systemctl Commands: Restart, Reload, and Stop Service
Hàm dịch thuật sử dụng google server viết bằng bash Sử dụng hàm sau viết trong bash script hoặc là viết trong file .sh *tuỳ cách sử dụng:
Leetcode bài 32 - Longest Valid Parentheses Link:  https://leetcode.com/problems/longest-valid-parentheses/ Bài này là bài khó, hiện tại mình vẫn chưa có cách nào để giải dù là vét cạn hay là làm thuật toán. Đề yêu cầu: Cho một chuỗi dấu ngoặc đóng mở bất kỳ, trả về độ dài chuỗi đóng mở có nghĩa lớn nhất. Ví dụ: 1. Chuỗi  "(()" trả về 2 với  "()" là chuỗi có nghĩa. 2.  Chuỗi  ")()())"  trả về  4  với  "()()" là chuỗi có nghĩa lớn nhất. 3. Chuỗi "()(()" trả về 2. Hai chuỗi thoả mãn đều là "()" và độ dài như nhau. 3*.  Chuỗi "" trả về 0 . Lần đầu tiên mình làm thế này. - Tạo một biến đếm int là 'sump'. Nếu gặp dấu mở ngoặc thì tăng lên 1 còn nếu gặp dấu đóng ngoặc thì nó giảm đi 1. -  Tạo thêm biến count để đếm số lầm sump giảm đi, vì nếu sump dương tức là còn mở ngoặc mà đóng ngoặc thì count vẫn đếm cho đến khi nào sump xuống dưới 0 thì thôi. -  Khi sump xuống dưới 0 thì tự động reset hai giá trị về 0 vì dấu đ...
  Valgrind's Tool Đây là một công cụ mới được cu em giới thiệu vào ngày 16/06/23 dùng để kiểm tra rò rỉ bộ nhớ. Phải nói là độ hiểu biết và phủ sóng của nó khá là cao và có nhiều cách để tìm hiểu về chương trình mạnh mẽ hơn lớp trên này rất nhiều.
Inline Function trong C++ Trong C++ có cách khai báo hàm inline. Hiểu một cách tương tự hoặc dễ hiểu thì nó gần như là replace text ở trong hàm. Hàm inline có tác dụng giảm một cách đáng kể thời gian thực thi chương trình nếu hàm nhỏ bởi đoạn code thực thi sẽ sẵn sàng được nhúng trực tiếp vào đoạn code. Ưu/Nhược điểm: [+] Tăng tốc độ thực thi chương trình. [+] Khiến mã dễ đọc dễ hiểu hơn nhiều. Đặc biệt với những phép tính phức tạp, tên hàm có thể thay cho lời giải thích mà không cần phải tốn thêm một dòng chú thích ở code gốc. Người kế thừa có thể tự do đọc tiếp mà bỏ qua phần thực thi bên trong. Nhược: Nếu dùng không chính xác có thể dẫn đến tăng dung lượng chương trình sau khi build. Ví dụ với chương trình sao /// Bỏ qua phần include void PrintfNumber(int num) {     printf("%d\n", num); } int main() {      PrintfNumber(1);      PrintfNumber(2);      PrintfNumber(3);      PrintfNumber(4);     return 0; } T...

Spaghetti code

Spaghetti Code Meaning "Spaghetti code" là một từ miệt thị ám chỉ chương trình có luồng code rối rắm phức tạp. Dẫn đến hiện tượng chương trình khó bảo trì và phát triển. Nó xảy ra nhiều trên các chương trình cũ khi chương trình được viết ra không thể tiếp tục phát triển và chặn đứng hoàn toàn khả năng phát triển mở rộng của sản phẩm. Các tệp bị phân mảnh nặng và phân tán. Nó cũng được mô tả như là hiện tượng phản mẫu lại hướng lập trình hướng đối tượng (viết theo kiểu thủ tục). Về tốc độ có thể tạm bỏ qua. Những chương trình này có thể đạt được tốc độ tốt đến khá tốt ở một vài khía cạnh nhưng giảm đáng kể đi tính dễ hiểu của hệ thống. Những người tiếp theo bảo trì phần mềm sẽ gặp rất nhiều rắc rối với những trường hợp phải xử lý ngoại lệ mà chương trình tạo ra. History Không rõ cụm từ này được bắt đầu từ khi nào nhưng lần đầu tiên nó được viết trực tiếp vào sách là cuốn "A primer on disciplined programming using PL/I, PL/CS, and PL/CT" của tác giả Guy Steele. Cuốn ...
Lệnh awk thú vị hơn mình nghĩ awk là gì? awk là lệnh trong bash shell. Nhưng có thể hiểu nó gần giống như một ngôn ngữ thông dịch mạnh mẽ được nhúng sẵn và hộ trợ cực kỳ tốt để xử lý văn bản. Đã một thời gian dài khi mình phải kiểm tra lỗi cấu trúc trong code của mình và rất tuyệt, nó có một đống lỗi. Nhiều đến hàng nghìn dòng nếu lưu nó ra văn bản để đọc. Lỗi nhiều như thế hoàn toàn là do mình đang phát triển một tính năng mới và trong quá trình nghĩ và code thì mình sẵn sàng code sai một chút rồi sửa dần sau. Miễn là lỗi không quá nhiều. Lượng code mới của mình hiện tại đã lên đến vài nghìn dòng rồi và nó sẽ còn tiếp tục tăng lên trong một thời gian dài nữa. Thế nhưng việc đọc file báo lỗi trở lại từ công cụ biên dịch thật đáng sợ. Nhiều đến mức khó tả. Mặc dù hầu hết là những lỗi nhỏ thôi nhưng để đọc và sửa cũng tốn thời gian nên mới có cơ hội để mình đọc đến cái lệnh awk này! Thứ nhất cần có một văn bản có sẵn và ở đây là văn bản build. Gõ lệnh thực hiện việc biên dịch và nó sẽ in...
  Bash Shell Hiểu một cách đơn giản thì Bash shell chỉ là một shell tương tự như cmd trên windows. Nó dùng để thực hiện các chức năng có sẵn của hệ điều hành và được chuẩn hoá và cấu hình kỹ thuật phổ biến trên hệ điều hành Linux. Bash có rất nhiều tính năng và nhiều câu lệnh hỗ trợ người dùng quản lý và phân bổ hệ điều hành một cách hợp lý. Như kiểm tra tài nguyên, chạy chương trình, kết thúc chương trình và nhiều việc tiêu chuẩn khác của một shell cần có. Tại sao lại cần học bash Phần lớn công việc của mình làm việc với hệ thống nhúng mà cụ thể là Linux. Với sự phát triển mạnh mẽ của ngành công nghệ cho thấy các máy móc 'ưa dùng' hệ điều hành Linux hơn hệ thống windows đồ sộ và khó hiểu. Được ra đời sau với mục đích chỉ để nghiên cứu và học tập nhưng các hệ điều hành nhà Linux đã trở nên phổ biến và thậm chí được thương mại hoá trên cực nhiều sản phẩm và len lỏi vào hầu hết các mặt. Chưa dừng lại ở đó, người nào có kiến thức ở hệ điều hành đủ sâu hoàn toàn có thể tinh chỉnh v...
 Xin chào thế giới Mục đích Chào Tad, chào mừng bạn đến với thế giới mới nơi lưu trữ lại những kiến thức vụn vặt mà bạn kiếm được trong quá trình học tập và làm việc. Mình thích lưu trữ chúng nhưng theo thời gian, lượng kiến thức đổ về ngày càng nhiều và càng ngày càng nhiều lĩnh vực riêng lẻ khiến mình không biết sắp xếp chúng vào đâu cho hợp lý. Mình đang sống và còn muốn tiếp tục phát triển. Nhiều kỹ năng, nhiều ngôn ngữ và mỗi thứ một chút. Nói thật ra bản thân mình chẳng thực sự giỏi được ở bất kỳ một lĩnh vực nào nhưng cũng chẳng kém. Kiểu như mỗi thứ đều học rất nhanh nhưng chỉ tới giới hạn của nó là hết - điểm dừng cho cuộc dạo chơi của mình với những thứ mới mẻ. Dù vậy thì chấp nhận những điểm mạnh điểm yếu của bản thân mình thì mình đã quyết định tạo blog. Mỗi ngày mới khi đi làm hoặc về nhà học thì mình lại học được một vài thứ mới mẻ và hay ho thì mình sẽ viết vào đây. Rồi mỗi thứ sẽ lại được sắp xếp và vận chuyển để mình hệ thống hoá lượng kiến thức 'kỳ quặc' mà mì...