Đề bài
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ụ
Đầ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.
Đầ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.