정의
단어의 순위는 단어의 의미와 상관없이 사전에서와 같이 문자의 가능한 모든 순열 (또는 배열)이 사전 순으로 정렬 될 때 단어의 위치로 정의됩니다.
이 두 단어 "blue"와 "seen"을 고려해 봅시다. 우선, 우리는이 단어의 글자의 가능한 모든 배열을 알파벳 순서로 씁니다.
"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"
이제 왼쪽에서 살펴보고 필요한 단어의 위치를 봅시다. 우리는 "blue"라는 단어가 4 번째 위치에 있고 "seen"이 10 위에 있다는 것을 알 수 있습니다. 따라서 "blue"라는 단어의 순위는 4이고 "seen"의 순위는 10입니다. 이것은 단어의 순위를 계산하는 일반적인 방법입니다. 1부터 계산을 시작하십시오.
태스크
당신의 임무는 단어를 입력으로 받아 순위를 표시하는 코드를 작성하는 것입니다. 순위는 출력이어야합니다. 반복되는 글자가 포함 된 단어에주의하십시오.
예
"prime" -> 94
"super" -> 93
"bless" -> 4
"speech" -> 354
"earth" -> 28
"a" -> 1
"abcd" -> 1
"baa" -> 3
입력이 완전히 소문자라고 가정 할 수 있으며 입력에는 알파벳 문자 만 포함 됩니다 . 또한 공백이나 유효하지 않은 문자열을 입력하면 아무 것도 반환 할 수 있습니다.
채점
이것은 code-golf 이므로 가장 짧은 코드가 승리합니다!
O(n log n)
. (죄송합니다, 파이썬) 내 제출 (C ++) 시험 (14) 해결하기 위해 2.53s 소요
['h', 'e', 'l', 'l', 'o']
를 들어 , 반대 단어로 튜플이나 목록을 사용할 수 있습니까 'hello'
?