परिभाषा
किसी शब्द की श्रेणी को शब्द की स्थिति के रूप में परिभाषित किया जाता है, जब इसके अक्षरों के सभी संभावित क्रमपरिवर्तन (या व्यवस्था) वर्णानुक्रम में व्यवस्थित होते हैं, जैसे शब्दकोष में, कोई फर्क नहीं पड़ता कि शब्द सार्थक हैं या नहीं।
आइए हम इन दो शब्दों पर विचार करें - "नीला" और "देखा"। शुरू करने के लिए, हम इन शब्दों के अक्षरों की सभी संभावित व्यवस्थाओं को वर्णमाला क्रम में लिखेंगे:
"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"
अब आइए बाईं ओर देखें और उन शब्दों की स्थिति ज्ञात करें जिनकी हमें आवश्यकता है। हम देखते हैं कि "ब्लू" शब्द 4 वें स्थान पर है और "देखा गया" 10 वें स्थान पर है। तो "ब्लू" शब्द की रैंक 4 है, और "देखा गया" 10 है। यह शब्द के रैंक की गणना करने का सामान्य तरीका है। सुनिश्चित करें कि आप केवल 1 से गिनती शुरू करते हैं।
कार्य
आपका कार्य किसी भी शब्द को इनपुट के रूप में लेने के लिए एक कोड लिखना है और उसकी रैंक प्रदर्शित करना है। रैंक आउटपुट होना चाहिए। बार-बार पत्र वाले शब्दों के बारे में सावधान रहें।
उदाहरण
"prime" -> 94
"super" -> 93
"bless" -> 4
"speech" -> 354
"earth" -> 28
"a" -> 1
"abcd" -> 1
"baa" -> 3
आप इनपुट को लोअरकेस में पूरी तरह से मान सकते हैं और इनपुट में केवल वर्णमाला अक्षर होंगे । यदि रिक्त स्थान या अमान्य स्ट्रिंग दर्ज किया गया है, तो भी आप कुछ भी वापस कर सकते हैं।
स्कोरिंग
यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है!
O(n log n)
या कम चलता है तो आपको एसी मिलेगा । (क्षमा करें, कोई पायथन) मेरा सबमिशन (C ++) टेस्ट 14. हल करने के लिए 2.53s लेता है।
['h', 'e', 'l', 'l', 'o']
कि विरोध 'hello'
?