Chuỗi số đối xứng

Một chuỗi số đối xứng là một chuỗi mà khi đọc từ trái sang phải và từ phải sang trái, ta nhận được cùng một chuỗi. Nghĩa là, chuỗi số này không thay đổi khi được đọc theo hai hướng.

Ví dụ về chuỗi số đối xứng là: 121, 1221, 12321, 123321, vv.

Để tìm các chuỗi số đối xứng, bạn có thể sử dụng một thuật toán đơn giản như sau:

  1. Bước 1: Xác định giới hạn cho các chuỗi số đối xứng (ví dụ: từ a đến b).
  2. Bước 2: Duyệt qua tất cả các số từ a đến b.
  3. Bước 3: Kiểm tra xem số hiện tại có phải là một chuỗi số đối xứng hay không.
    • Chuyển đổi số hiện tại thành một chuỗi ký tự.
    • So sánh chuỗi ký tự ban đầu với chuỗi ký tự được đảo ngược. Nếu hai chuỗi này giống nhau, số hiện tại là một chuỗi số đối xứng.
  4. Bước 4: Nếu số hiện tại là một chuỗi số đối xứng, ta lưu nó vào một danh sách hoặc in ra màn hình.
  5. Bước 5: Tiếp tục từ bước 2 với các giá trị kế tiếp cho đến khi đạt đến giới hạn cuối cùng.

Dưới đây là một ví dụ trong Python về cách tìm các chuỗi số đối xứng trong khoảng từ a đến b:

def is_palindrome_number(n):
    string_num = str(n)
    reversed_string = string_num[::-1]
    return string_num == reversed_string

def find_palindrome_numbers(a, b):
    palindrome_numbers = []
    for num in range(a, b+1):
        if is_palindrome_number(num):
            palindrome_numbers.append(num)
    return palindrome_numbers

# Ví dụ sử dụng:
a = 100
b = 1000
palindrome_numbers = find_palindrome_numbers(a, b)
print(palindrome_numbers)  # Output: [101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 202, ...]

Trong ví dụ này, chúng ta tạo hai hàm. Hàm is_palindrome_number(n) kiểm tra xem một số n có phải là một chuỗi số đối xứng hay không. Chúng ta chuyển đổi số n thành một chuỗi ký tự, và sau đó so sánh chuỗi ký tự ban đầu với chuỗi ký tự đảo ngược. Nếu hai chuỗi này giống nhau, số n là một chuỗi số đối xứng.

Hàm find_palindrome_numbers(a, b) tìm các chuỗi số đối xứng trong khoảng từ a đến b. Chúng ta duyệt qua tất cả các số từ a đến b và kiểm tra mỗi số bằng cách gọi hàm is_palindrome_number(). Nếu số đó là một chuỗi số đối xứng, chúng ta thêm nó vào danh sách palindrome_numbers.

Trong ví dụ trên, chúng ta tìm các chuỗi số đối xứng trong khoảng từ 100 đến 1000 và in ra danh sách các chuỗi số đối xứng tìm được.

Trả lời