Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Chuỗi Palindrome

Kiểm tra xem văn bản có đọc xuôi và ngược giống nhau hay không.

Bạn sẽ học được gì

  • So sánh ký tự từ hai đầu
  • Dừng sớm khi gặp ký tự khác nhau
  • Xử lý chuỗi rỗng và chuỗi một ký tự

Đề bài

Xem bản gốc (English)

Xác định xem text có phải là một palindrome hay không, chỉ xét các chữ cái và chữ số, bỏ qua phân biệt hoa thường.

Cài đặt hàm is_palindrome(text).

Đầu vào

text: Văn bản cần kiểm tra (ký tự ASCII).

Đầu ra

Trả về true nếu là palindrome, ngược lại trả về false.

Ràng buộc

0 ≤ độ dài ≤ 10.000

Ví dụ

Ví dụ 1
Đầu vào:
text = "Racecar"

Kết quả mong đợi:
expected = True
Đầu vào:
std::string text = "Racecar";

Kết quả mong đợi:
bool expected = true;
Đầu vào:
string text = "Racecar";

Kết quả mong đợi:
bool expected = true;

Giải thích

Khi chuyển về chữ thường, "racecar" đọc xuôi hay ngược đều giống nhau.

Ví dụ 2
Đầu vào:
text = "hello"

Kết quả mong đợi:
expected = False
Đầu vào:
std::string text = "hello";

Kết quả mong đợi:
bool expected = false;
Đầu vào:
string text = "hello";

Kết quả mong đợi:
bool expected = false;

Giải thích

"hello" khi đảo ngược thành "olleh", khác với ban đầu.

Hướng tiếp cận

Hãy tự thử trước, sau đó mở từng gợi ý một.

Gợi ý 1

Bỏ qua mọi thứ không phải chữ hoặc số trước khi so sánh.

Gợi ý 2

Di chuyển vào từ hai đầu, so sánh không phân biệt hoa thường.

Gợi ý 3

Bỏ qua dấu câu và khoảng trắng cẩn thận để không làm hỏng palindrome hợp lệ.

Độ phức tạp mong đợi

thời gian O(n), bộ nhớ phụ O(1)

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.