सूचना सिद्धांत में, एक "उपसर्ग कोड" एक शब्दकोश है जहां कोई भी कुंजी किसी अन्य का उपसर्ग नहीं है। दूसरे शब्दों में, इसका मतलब यह है कि कोई भी तार दूसरे से शुरू नहीं होता है।
उदाहरण के लिए, {"9", "55"}
एक उपसर्ग कोड है, लेकिन {"5", "9", "55"}
नहीं है।
इसका सबसे बड़ा फायदा यह है कि इनकोडिंग टेक्स्ट को उनके बीच कोई विभाजक नहीं लिखा जा सकता है, और यह अभी भी विशिष्ट रूप से निर्णायक होगा। यह हफ़मैन कोडिंग जैसे संपीड़न एल्गोरिदम में दिखाई देता है , जो हमेशा इष्टतम उपसर्ग कोड उत्पन्न करता है।
आपका कार्य सरल है: तार की एक सूची को देखते हुए, यह निर्धारित करें कि यह एक वैध उपसर्ग कोड है या नहीं।
आपका सुझाव:
किसी भी उचित प्रारूप में तार की एक सूची होगी ।
केवल मुद्रण योग्य ASCII तार शामिल होंगे।
कोई खाली तार नहीं होगा।
आपका आउटपुट एक सत्य / गलत मूल्य होगा: सत्य यदि यह एक वैध उपसर्ग कोड है, और यदि यह नहीं है तो गलत है।
यहाँ कुछ सच्चे परीक्षण के मामले हैं:
["Hello", "World"]
["Code", "Golf", "Is", "Cool"]
["1", "2", "3", "4", "5"]
["This", "test", "case", "is", "true"]
["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011",
"0110", "11001", "00110", "10011", "11000", "00111", "10010"]
यहाँ कुछ झूठे परीक्षण मामले हैं:
["4", "42"]
["1", "2", "3", "34"]
["This", "test", "case", "is", "false", "t"]
["He", "said", "Hello"]
["0", "00", "00001"]
["Duplicate", "Duplicate", "Keys", "Keys"]
यह कोड-गोल्फ है, इसलिए मानक कमियां लागू होती हैं, और बाइट्स जीत में सबसे कम जवाब मिलता है।
001
विशिष्ट विशिष्ट होगा ? यह 00, 1
या तो हो सकता है 0, 11
।
0, 00, 1, 11
सभी कुंजी के रूप में हैं, तो यह उपसर्ग-कोड नहीं है, क्योंकि 0 00 का एक उपसर्ग है, और 1 11. का एक उपसर्ग है। एक उपसर्ग कोड वह है जहां कोई भी कुंजी किसी अन्य कुंजी से शुरू नहीं होती है। इसलिए, उदाहरण के लिए, यदि आपकी चाबियाँ हैं तो 0, 10, 11
यह एक उपसर्ग कोड और विशिष्ट रूप से समझने योग्य है। 001
एक वैध संदेश नहीं है, लेकिन 0011
या 0010
विशिष्ट रूप से निर्णायक हैं।