Định nghĩa
Thứ hạng của một từ được định nghĩa là vị trí của từ khi tất cả các hoán vị (hoặc sắp xếp) có thể có của các chữ cái được sắp xếp theo thứ tự abc, như trong từ điển, bất kể các từ đó có ý nghĩa hay không.
Chúng ta hãy xem xét hai từ này - "màu xanh" và "nhìn thấy". Để bắt đầu, chúng tôi sẽ viết tất cả các sắp xếp có thể có của các chữ cái của các từ này theo thứ tự bảng chữ cái:
"blue": "belu","beul","bleu","blue","buel","bule","eblu","ebul","elub","elbu","eubl",
"eulb","lbeu","lbue","lebu","leub","lube","lueb","ubel","uble","uebl","uelb",
"ulbe","uleb"
"seen": "eens","eesn","enes","ense","esen","esne","nees","nese","nsee","seen",
"sene","snee"
Bây giờ chúng ta hãy nhìn từ bên trái và tìm vị trí của các từ chúng ta cần. Chúng tôi thấy rằng từ "màu xanh" ở vị trí thứ 4 và "nhìn thấy" ở vị trí thứ 10. Vì vậy, thứ hạng của từ "màu xanh" là 4 và thứ hạng của "nhìn thấy" là 10. Đây là cách tính chung cho thứ hạng của một từ. Hãy chắc chắn rằng bạn bắt đầu đếm từ 1 chỉ.
Bài tập
Nhiệm vụ của bạn là viết mã để lấy bất kỳ từ nào làm đầu vào và hiển thị thứ hạng của nó. Thứ hạng nên là đầu ra. Hãy cẩn thận về các từ có chứa các chữ cái lặp đi lặp lại.
Ví dụ
"prime" -> 94
"super" -> 93
"bless" -> 4
"speech" -> 354
"earth" -> 28
"a" -> 1
"abcd" -> 1
"baa" -> 3
Bạn có thể giả sử đầu vào hoàn toàn bằng chữ thường và đầu vào sẽ chỉ chứa các ký tự chữ cái . Ngoài ra nếu một khoảng trống hoặc một chuỗi không hợp lệ được nhập vào, bạn có thể trả lại bất cứ thứ gì.
Chấm điểm
Đây là môn đánh gôn , vì vậy đoạn mã ngắn nhất sẽ thắng!
O(n log n)
hoặc ít hơn. (xin lỗi, không có Python) Trình của tôi (C ++) mất 2,53 giây để giải bài kiểm tra 14.
['h', 'e', 'l', 'l', 'o']
như trái ngược với 'hello'
?