Skip to content

Instantly share code, notes, and snippets.

@hashcott
Last active June 7, 2024 12:39
Show Gist options
  • Select an option

  • Save hashcott/fdad5d90f6a2bdcb22a695013de6dc97 to your computer and use it in GitHub Desktop.

Select an option

Save hashcott/fdad5d90f6a2bdcb22a695013de6dc97 to your computer and use it in GitHub Desktop.

Bài 1

Idea: Greedy Cho một mảng các số nguyên không âm. Tìm ba phần tử trong mảng đó tạo thành một tam giác có chu vi lớn nhất.

Test Case

Input : {6, 1, 6, 5, 8, 4}
Output : 20
Input : {2, 20, 7, 55, 1, 33, 12, 4}
Output : Triangle formation is not possible.
Input: {33, 6, 20, 1, 8, 12, 5, 55, 4, 9}
Output: 41

Bài 2

Idea: Dynamic Programming Cho hai chuỗi ký tự ‘X’ và ‘Y’, hãy tìm độ dài của xâu con chung dài nhất. Xâu con chung là một dãy ký tự xuất hiện trong cả hai chuỗi theo thứ tự giống nhau.

Test case

Input : X = “HarryDepTrai”, y = “HarryPro” 
Output : 5 
Explanation:
The longest common substring is “Harry” and is of length 5.

Input : X = “abcdxyz”, y = “xyzabcd” 
Output : 4 
Explanation:
The longest common substring is “abcd” and is of length 4.

Input : X = “zxabcdezy”, y = “yzabcdezx” 
Output : 6 
Explanation:
The longest common substring is “abcdez” and is of length 6.

Bài 3

Ý tưởng: Đệ quy Cho hai mảng được sắp xếp A và B. Tìm tất cả các mảng kết hợp có thể tạo thành sao cho phần tử đầu tiên được lấy từ A, tiếp theo là từ B, rồi lại từ A, cứ thế cho đến khi cả hai mảng đều rỗng. Các mảng kết hợp này phải được sắp xếp tăng dần và bắt buộc phải kết thúc bằng một phần tử từ B.

Test case

A = {10, 15, 25}
B = {1, 5, 20, 30}

The resulting arrays are:
  10 20
  10 20 25 30
  10 30
  15 20
  15 20 25 30
  15 30
  25 30

Bài tập PRO

Bài toán: Một xâu gọi là xâu đối xứng (palindrome) nếu xâu đó đọc từ trái sang phải hay từ phải sang trái đều như nhau. Cho một xâu , hãy tìm số kí tự ít nhất cần thêm vào để trở thành xâu đối xứng.

Test case

Ví dụ: S=edbabcd, xâu đảo của là P=dcbabde. Xâu con chung dài nhất của và là T=dbabd. Như vậy cần thêm 2 kí tự là ec vào để trở thành xâu đối xứng.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment