Vâng, đầu tiên chắc chắn sẽ nhanh hơn. Giải quyết một vấn đề khó được mã hóa, rất cụ thể hầu như luôn luôn đi nhanh hơn rất nhiều so với việc truyền một giải pháp cụ thể cho một thói quen giải quyết vấn đề chung. Đối với "đáng kể" nhanh hơn, tại sao bạn không kiểm tra nó? Chạy cả hai phiên bản trong vòng lặp 10 triệu lần và sử dụng TStopwatch
(hoặc một cái gì đó khác nếu bạn không có D2010 trở lên) để tính thời gian.
Một điều khác: Thứ nhất chắc chắn nhanh hơn, nhưng cũng có thể sai. Nếu length(TestString)
không được đảm bảo là> = 2, bạn có thể gặp phải tình trạng lỗi ở đây. Nếu TestString
là một chuỗi rỗng, điều này sẽ làm tăng ngoại lệ. Nếu không, bạn có thể hoặc có thể không nhận được một ngoại lệ tùy thuộc vào cài đặt trình biên dịch.
Nguồn
2012-01-17 21:48:22
Đánh giá từ trái sang phải là không cần thiết cho phương pháp đầu tiên. Bạn có thể điều chỉnh nó để lọc ra các lần xuất hiện ít thường xuyên nhất trước tiên. Ví dụ: bạn có thể kiểm tra dấu hỏi trước nếu nó ít thường xuyên hơn. –