Backtracking#2

Bộ đề bài

1. Letter Case Permutation

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một chuỗi s, bạn có thể biến đổi từng chữ cái trong chuỗi thành chữ thường hoặc chữ hoa để tạo thành một chuỗi khác.

Hãy trả về danh sách tất cả các chuỗi có thể tạo được. Có thể trả về kết quả theo bất kỳ thứ tự nào.

Ví dụ

Input Output
s = "a1b2" ["a1b2","a1B2","A1b2","A1B2"]
s = "3z4" ["3z4","3Z4"]

Ràng buộc

  • 1 ≤ s.length ≤ 12
  • s chỉ gồm các chữ cái tiếng Anh viết thường, chữ cái tiếng Anh viết hoa và các chữ số.

2. Find Unique Binary String

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một mảng chuỗi nums chứa n chuỗi nhị phân khác nhau, mỗi chuỗi có độ dài n.

Hãy trả về một chuỗi nhị phân có độ dài nkhông xuất hiện trong nums.

Nếu có nhiều đáp án, có thể trả về bất kỳ đáp án nào.

Ví dụ

Input Output Giải thích
nums = ["01","10"] "11" "11" không xuất hiện trong nums. "00" cũng là một đáp án đúng.
nums = ["00","01"] "11" "11" không xuất hiện trong nums. "10" cũng là một đáp án đúng.
nums = ["111","011","001"] "101" "101" không xuất hiện trong nums. "000", "010", "100" và "110" cũng là các đáp án đúng.

Ràng buộc

  • n = nums.length
  • 1 ≤ n ≤ 16
  • nums[i].length = n
  • nums[i] chỉ gồm ký tự '0' hoặc '1'.
  • Tất cả các chuỗi trong nums là khác nhau.

3. Happy string

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một happy string là một chuỗi thỏa mãn:

  • Chỉ gồm các chữ cái trong tập {'a', 'b', 'c'}.
  • s[i] ≠ s[i + 1] với mọi giá trị i từ 1 đến s.length - 1 (chuỗi được đánh chỉ số từ 1).

Ví dụ, các chuỗi "abc", "ac", "b""abcbabcbcb" đều là happy string, trong khi các chuỗi "aa", "baa""ababbc" không phải là happy string.

Cho hai số nguyên nk, xét danh sách tất cả các happy string có độ dài n được sắp xếp theo thứ tự từ điển.

Hãy trả về chuỗi thứ k trong danh sách này hoặc trả về chuỗi rỗng nếu có ít hơn k happy string có độ dài n.

Ví dụ

Input Output Giải thích
n = 1, k = 3 "c" Danh sách ["a", "b", "c"] chứa tất cả các happy string có độ dài 1. Chuỗi thứ ba là "c".
n = 1, k = 4 "" Chỉ có 3 happy string có độ dài 1.
n = 3, k = 9 "cab" Có 12 happy string khác nhau có độ dài 3: ["aba", "abc", "aca", "acb", "bab", "bac", "bca", "bcb", "cab", "cac", "cba", "cbc"]. Chuỗi thứ 9 là "cab".

Ràng buộc

  • 1 ≤ n ≤ 10
  • 1 ≤ k ≤ 100

4. Numbers With Same Consecutive Differences

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho hai số nguyên nk, hãy trả về một mảng gồm tất cả các số nguyên có độ dài n sao cho hiệu giữa mỗi hai chữ số liên tiếp bằng k.

Có thể trả về kết quả theo bất kỳ thứ tự nào.

Lưu ý rằng các số nguyên không được có chữ số 0 ở đầu. Các số như 02043 không hợp lệ.

Ví dụ

Input Output Giải thích
n = 3, k = 7 [181,292,707,818,929] 070 không phải là một số hợp lệ vì có chữ số 0 ở đầu.
n = 2, k = 1 [10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98]

Ràng buộc

  • 2 ≤ n ≤ 9
  • 0 ≤ k ≤ 9

5. Combination Sum III

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hãy tìm tất cả các tổ hợp hợp lệ gồm k số có tổng bằng n, sao cho các điều kiện sau được thỏa mãn:

  • Chỉ sử dụng các số từ 1 đến 9.
  • Mỗi số được sử dụng nhiều nhất một lần.

Hãy trả về danh sách tất cả các tổ hợp hợp lệ có thể có.

Danh sách kết quả không được chứa cùng một tổ hợp hai lần và các tổ hợp có thể được trả về theo bất kỳ thứ tự nào.

Ví dụ 1

Input Output
k = 3, n = 7 [[1,2,4]]

Giải thích

1 + 2 + 4 = 7

Không có tổ hợp hợp lệ nào khác.

Ví dụ 2

Input Output
k = 3, n = 9 [[1,2,6],[1,3,5],[2,3,4]]

Giải thích

1 + 2 + 6 = 9
1 + 3 + 5 = 9
2 + 3 + 4 = 9

Không có tổ hợp hợp lệ nào khác.

Ví dụ 3

Input Output
k = 4, n = 1 []

Giải thích

Không có tổ hợp hợp lệ.

Khi sử dụng 4 số khác nhau trong đoạn [1,9], tổng nhỏ nhất có thể đạt được là:

1 + 2 + 3 + 4 = 10

Vì 10 > 1 nên không có tổ hợp hợp lệ.

Ràng buộc

  • 2 ≤ k ≤ 9
  • 1 ≤ n ≤ 60

6. Subsets II

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một mảng số nguyên nums có thể chứa các phần tử trùng nhau, hãy trả về tất cả các tập con có thể có (tập lũy thừa).

Tập kết quả không được chứa các tập con trùng lặp.

Có thể trả về kết quả theo bất kỳ thứ tự nào.

Ví dụ

Input Output
nums = [1,2,2] [[],[1],[1,2],[1,2,2],[2],[2,2]]
nums = [0] [[],[0]]

Ràng buộc

  • 1 ≤ nums.length ≤ 10
  • -10 ≤ nums[i] ≤ 10

7. Letter Tile Possibilities

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn có n ô chữ tiles, trong đó mỗi ô có một chữ cái tiles[i] được in trên đó.

Hãy trả về số lượng các chuỗi chữ cái khác rỗng có thể tạo ra bằng cách sử dụng các chữ cái được in trên các ô tiles.

Ví dụ

Input Output Giải thích
tiles = "AAB" 8 Các chuỗi có thể tạo ra là "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA".
tiles = "AAABBC" 188
tiles = "V" 1

Ràng buộc

  • 1 ≤ tiles.length ≤ 7
  • tiles chỉ gồm các chữ cái tiếng Anh viết hoa.

8. Beautiful Arrangement

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Giả sử bạn có n số nguyên được đánh nhãn từ 1 đến n.

Một hoán vị của n số nguyên này là perm (được đánh chỉ số từ 1) được gọi là một beautiful arrangement nếu với mọi i (1 ≤ i ≤ n), một trong các điều kiện sau đúng:

  • perm[i] chia hết cho i.
  • i chia hết cho perm[i].

Cho một số nguyên n, hãy trả về số lượng beautiful arrangement có thể tạo được.

Ví dụ 1

Input Output
n = 2 2

Giải thích

Beautiful arrangement thứ nhất là [1,2]:

  • perm[1] = 1 chia hết cho i = 1.
  • perm[2] = 2 chia hết cho i = 2.

Beautiful arrangement thứ hai là [2,1]:

  • perm[1] = 2 chia hết cho i = 1.
  • i = 2 chia hết cho perm[2] = 1.

Ví dụ 2

Input Output
n = 1 1

Ràng buộc

  • 1 ≤ n ≤ 15