कोड 39 , जिसे 1974 में विकसित किया गया था, सबसे अधिक इस्तेमाल की जाने वाली सहजीवन, या प्रकार, बारकोड में से एक है, हालांकि यह यूपीसी / ईएएन प्रणाली है जो खुदरा बिक्री में सबसे अधिक बार देखी जाती है। कोड 39 बारकोड्स अपरकेस अक्षर, संख्याओं और कुछ प्रतीकों को सांकेतिक शब्दों में बदलना कर सकते हैं और एक विशेष फ़ॉन्ट का उपयोग करके कंप्यूटर सॉफ्टवेयर से प्रिंट करने के लिए तुच्छ हैं। इससे उनका व्यापक वाणिज्यिक और औद्योगिक उपयोग हुआ (जैसे कंपनी आईडी बैज, परिसंपत्ति ट्रैकिंग, कारखाना स्वचालन)।
एक 512x512 पिक्सेल ग्रेस्केल छवि से किसी भी अभिविन्यास में कोड 39 बारकोड को पढ़ने के लिए सबसे छोटा कार्यक्रम या फ़ंक्शन बनाएं; बारकोड को क्षैतिज या लंबवत रूप से संरेखित नहीं किया जा सकता है।
- आपके प्रोग्राम को एक मानक छवि फ़ाइल प्रारूप को स्वीकार करना चाहिए और बारकोड में एन्कोड किए गए डेटा को उसके मानक आउटपुट या रिटर्न वैल्यू (किसी भी स्टार्ट / स्टॉप कैरेक्टर सहित नहीं) के रूप में उत्पन्न करना चाहिए।
- किसी भी छवि में एक से अधिक मान्य कोड 39 बारकोड नहीं होता है, और कोई भी बारकोड एक अंतरिक्ष वर्ण (ASCII 32) को एनकोड नहीं करता है।
- यदि कोई वैध कोड 39 बारकोड छवि में नहीं दिखाया गया है, तो प्रोग्राम को एक एकल प्रश्न चिह्न (
?) का उत्पादन करना होगा ।
मैंने पीएनजी प्रारूप में मान्य बारकोड और बिना, दोनों के साथ जावास्क्रिप्ट संदर्भ कार्यान्वयन और छवियों का परीक्षण सूट तैयार किया है । संदर्भ कार्यान्वयन, जो कि हाल के वेब ब्राउज़रों में केवल 46 परीक्षण मामलों में से 3 में विफल रहता है, का उद्देश्य एक संभव डिकोडिंग एल्गोरिदम दिखाना है, जो उपरोक्त विनिर्देश के अनुरूप कड़ाई से नहीं है।
एक वैध सबमिशन इन परीक्षणों (37/46) में से कम से कम 80% गुजरता है और प्रत्येक छवि के लिए यथोचित तेजी से सीपीयू (जैसे 2.6 गीगाहर्ट्ज़ क्वाड-कोर) पर ऐसा करने में एक मिनट से अधिक नहीं लगता है। मेरा संदर्भ कार्यान्वयन 93% परीक्षण पास करता है और प्रत्येक छवि को 10 सेकंड के भीतर (Google डेस्कटॉप पर चलने वाले मेरे डेस्कटॉप पीसी पर) संसाधित करता है।
(यह सवाल 28 मई, 2011 को मेटा में प्रस्तावित किया गया था ।)